C-Sharp

C-Sharp
Icon falscher Titel.svg Der korrekte Titel dieses Artikels lautet „C#“. Diese Schreibweise ist aufgrund technischer Einschränkungen nicht möglich.
C#
Paradigmen: strukturiert, imperativ, objektorientiert
Erscheinungsjahr: 2001
Entwickler: Microsoft
Aktuelle Version: 4.0  (12. April 2010)
Typisierung: statisch, stark
Einflüsse: C, C++, Delphi, Haskell, Java, Modula-3, Visual Basic
Beeinflusste: Java[1], Vala
Betriebssystem: alle, für die eine CLI-Implementierung existiert (z. B. Microsofts CLR des .NET-Frameworks oder Novells Mono)

C# (lies engl. c sharp, englische Aussprache [ˌsiːˈʃɑːp]) ist eine vom Softwarehersteller Microsoft im Rahmen seiner .NET-Strategie entwickelte Programmiersprache. C# ist bei ECMA[2] und ISO als Standard registriert.

Die aktuelle Version C# 4.0 wurde im Jahr 2010 gleichzeitig mit dem Microsoft .NET Framework 4.0 veröffentlicht.

Inhaltsverzeichnis

Konzept

C# greift Konzepte der Programmiersprachen Java, C++, Haskell, C sowie Delphi auf. C# zählt zu den objektorientierten Programmiersprachen und unterstützt sowohl die Entwicklung von sprachunabhängigen .NET-Komponenten als auch COM-Komponenten für den Gebrauch mit Win32-Applikationen.

Einige der Elemente von C++, die im Allgemeinen als unsicher gelten, wie beispielsweise Zeiger, werden in C# nur für sogenannten „unsicheren Code“ erlaubt, der in Zonen mit eingeschränkten Rechten (z. B. bei Programmen, die aus Webseiten heraus ausgeführt werden) ohne die Zuteilung erweiterter Rechte nicht ausgeführt wird.

Als .NET-Sprache verfügt auch C# über Sprachunterstützung für Attribute und Delegaten. Attribute erlauben es, Informationen über eine Klasse, ein Objekt, oder eine Methode zu speichern, die zur Laufzeit ausgewertet werden können. Man spricht hierbei auch von Metadaten. Ein Delegat kann auf Methoden einer Klasse verweisen. Das Konzept lässt sich mit Funktionszeigern vergleichen. Im Unterschied zu diesen enthalten Delegaten zusätzlich auch Verweise auf die zu den Methoden gehörenden Objekte. Ein Aufruf eines Delegaten ruft also Methoden auf, denen implizit ein Objektzeiger als Parameter übergeben wird. Außerdem müssen Delegaten typensicher deklariert werden, was zur Folge hat, dass Inkompatibilitäten der Methodensignaturen zwischen aufrufendem Delegat und der aufzurufenden Methode schon während der Compilierung aufgelöst werden.

Ab der Version 2.0 von C#, das mit .NET-Framework 2.0 freigegeben wurde, unterstützt C# neben generischen Typen (engl. generics) auch anonyme Methoden, Generatoren und partielle Klassen. Generische Typen, Iteratoren und partielle Klassen sind Bestandteil des .NET-Frameworks 2.0 und stehen somit auch anderen .NET-Programmiersprachen wie beispielsweise VB.NET zur Verfügung.

Standardisierung

Microsoft reichte im August 2000 zusammen mit Hewlett-Packard und Intel C# bei der Normungsorganisation Ecma International zur Normung ein. Im Dezember 2001 veröffentlichte die ECMA die Norm ECMA-334 C# Language Specification. 2003 wurde C# von der ISO genormt (ISO/IEC 23270).

Im Juni 2005 genehmigte die ECMA die dritte Version (C# 2.0) der C#-Spezifikationen und aktualisierte die bisherige Norm ECMA-334. Hinzu kamen die partiellen Klassen, anonyme Methoden, nullable types und Generics, die Ähnlichkeiten zu den C++-Templates aufweisen. Im Juli 2005 übergab die ECMA die Standards und zugehörigen TRs an die ISO/IEC JTC 1.

Die ECMA-Spezifikation 334 deckt nur die Sprache C# ab. Programme, die in C# geschrieben werden, nutzen gewöhnlich das .NET-Framework, welches teilweise durch andere Spezifikationen beschrieben wird und teilweise proprietär ist. Dennoch ist die Sprache C# prinzipiell plattformunabhängig. Das von Ximian (jetzt Novell) initiierte Projekt Mono ermöglicht beispielsweise auch Linuxnutzern, C# für Entwicklungen auf ihrem Betriebssystem einzusetzen.

Microsoft veröffentlichte die dritte Version von C# mit dem .NET-SDK 2.0 und Visual Studio 2005 im November 2005.

Microsoft stellte klar, dass C#, genauso wie andere .NET-Sprachen, einen wichtigen Bestandteil seiner Softwarestrategie sowohl für den internen als auch für den externen Gebrauch darstelle. Das Unternehmen übernimmt eine aktive Rolle in der Vermarktung der Sprache als Teil seiner gesamten Geschäftsstrategie.

Verfügbarkeit von integrierten Entwicklungsumgebungen

Neben der von Microsoft vertriebenen Entwicklungsplattform Microsoft Visual Studio sowie der in ihrem Funktionsumfang eingeschränkten, kostenlosen Version Microsoft Visual Studio C# Express gibt es inzwischen auch Entwicklungsumgebungen (IDEs) anderer Hersteller für C#:

Compiler

  • Das Open-Source-Projekt dotGNU entwickelt eine freie .NET-Version inklusive C#-Compiler und beherrscht Windows.Forms.
  • Das Open-Source-Projekt mono entwickelt eine freie und plattformunabhängige .NET-Version inklusive C#-Compiler.

Namensgebung

C ist ursprünglich ein Symbol für den in der Musik durch ein Kreuz () um einen Halbton erhöhten Ton C, das Cis – englisch C sharp. Da das Kreuz allerdings auf keiner Standardtastatur direkt eingegeben werden kann, wird bei der Schreibung des Namens in der Regel das typographisch ähnliche Doppelkreuz # als Ersatzdarstellung gewählt.[3]

Eine andere Erklärung ist, dass C++ wiederum inkrementiert wurde. Das vierfache Plus wird daher als Doppelkreuz dargestellt.

Sprachelemente von C#

Hauptartikel: Sprachelemente von C#

Das folgende typische Hallo-Welt-Programm soll als C#-Syntaxbeispiel für ein einfaches Konsolen-Programm dienen:

class Program
{
  public static void Main()
  {
    System.Console.WriteLine("Hallo Welt!");
  }
}

Einfache MessageBox in C#

using System;
using System.Windows.Forms;
 
class Program
{
  public static void Main()
  {
    MessageBox.Show("Text","Titel",MessageBoxButtons.OK,MessageBoxIcon.Hand);
  }
}

FileStream-Beispiel in C#

using System;
using System.IO;
using System.Text;
 
class Program
{
  public static void Main()
  {
    //Text der in die Datei geschrieben wird.
    string TexttoWrite = "Hallo Welt"; 
    //Datei "DATEINAME.TXT" wird erstellt
    using ( var fs = new FileStream("DATEINAME.TXT", FileMode.Create, FileAccess.Write) ) {
       //Der Text wird in die Datei geschrieben
       fs.Write(Encoding.UTF8.GetBytes(TexttoWrite), 0, TexttoWrite.Length);
       //Datei wird geschlossen..
    }
  }
}

Sprachderivate

  • eXtensible C# (XC#)
  • Metaphor
  • MMC#[4]
  • Multiprocessor C# (MC#)
  • Polyphonic C#
  • Sing#
  • Spec#
  • Vala für Programme des GNOME-Projektes

Einzelnachweise

  1. Java 5 catches up with C#
  2. ECMA-Spezifikation der Sprache
  3. Vorwort des Buches C# mit Methode, Christian Bleske (Hrsg.), Alexander Mayer, Michael Fischer, Michael Starke, Michael Steil (PDF)
  4. [1],O.Lampl;L.Böszörmenyi; Adaptive quality-aware programming with declarative QoS constraints

Literatur

Weblinks


Wikimedia Foundation.

Игры ⚽ Поможем сделать НИР
Synonyme:

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Sharp (surname) — Sharp is a surname. Sharp is cognate to the German dd. scharf . It is also akin to words which have the sense of scraping, e.g. Latin la. scrobis ditch , Russian ru. skresti to scrape .* Abraham Sharp (1651 1742), English schoolmaster,… …   Wikipedia

  • Sharp — Sharp, a. [Compar. {Sharper}; superl. {Sharpest}.] [OE. sharp, scharp, scarp, AS. scearp; akin to OS. skarp, LG. scharp, D. scherp, G. scharf, Dan. & Sw. skarp, Icel. skarpr. Cf. {Escarp}, {Scrape}, {Scorpion}.] 1. Having a very thin edge or fine …   The Collaborative International Dictionary of English

  • Sharp practice — Sharp Sharp, a. [Compar. {Sharper}; superl. {Sharpest}.] [OE. sharp, scharp, scarp, AS. scearp; akin to OS. skarp, LG. scharp, D. scherp, G. scharf, Dan. & Sw. skarp, Icel. skarpr. Cf. {Escarp}, {Scrape}, {Scorpion}.] 1. Having a very thin edge… …   The Collaborative International Dictionary of English

  • Sharp — K.K Rechtsform Kabushiki kaisha ISIN JP3359600008[1] Gründung …   Deutsch Wikipedia

  • Sharp Corporation — シャープ株式会社 Lema Be Sharp, From Sharp Minds Come Sharp Products Tipo Pública (TYO …   Wikipedia Español

  • Sharp Corporation — シャープ株式会社 Тип Публичная компания Листинг на бирже TYO …   Википедия

  • SHARP —  Pour l’article homophone, voir Sharpe. Cette page d’homonymie répertorie les différents sujets et articles partageant un même nom …   Wikipédia en Français

  • sharp — [ʆɑːp ǁ ʆɑːrp] adjective a sharp increase, fall etc is very sudden and very big: • a sharp rise in interest rates • Unemployment generally brings a sharp fall in income. • The group reported a sharp decline in full year profits. sharply adverb …   Financial and business terms

  • sharp — [shärp] adj. [ME < OE scearp, akin to Ger scharf, ON skarpr < IE * (s)kerb(h) < base * (s)ker , to cut > SHEAR, HARVEST, L caro, flesh] 1. suitable for use in cutting or piercing; having a very thin edge or fine point; keen 2. having… …   English World dictionary

  • Sharp Nemesis NXT — at Mojave Role Racing aircraft Manufa …   Wikipedia

  • sharp — sharp, keen, acute can all mean having a fine point or edge, but it is in several of their extended senses that they are most likely to come into comparison. As applied to persons or their qualities, especially of intellect, all three can… …   New Dictionary of Synonyms

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”