CSharp

CSharp
Dieser Artikel behandelt die Programmiersprache C#. In der Musik bezeichnet C# (bzw. C♯) den Ton Cis.
C#
Paradigmen: strukturiert, imperativ, objektorientiert, funktional
Erscheinungsjahr: 2001
Entwickler: Microsoft
Aktuelle Version: 3.5 SP1  (2008)
Typisierung: statisch, stark
Einflüsse: C++, Delphi, SQL, Java, Modula-3, Visual Basic
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 und ISO als Standard registriert.

Inhaltsverzeichnis

Konzept

C# greift Konzepte der Programmiersprachen Java, C++, SQL, 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 z. B. VB.NET, zur Verfügung.

Standardisierung

Microsoft reichte im August 2000 zusammen mit Hewlett-Packard und der Intel Corporation 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 .NET aus dem eigenen Hause gibt es inzwischen auch Entwicklungsumgebungen (IDEs) anderer Hersteller für C#:

Der Name C#

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 Rautenzeichen # als Ersatzdarstellung gewählt.

Hallo-Welt-Programm

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

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

Siehe auch

Sprachderivate
  • Spec#
  • Sing#
  • eXtensible C# (XC#)
  • Multiprocessor C# (MC#)
  • Metaphor
  • Polyphonic C#
  • Vala

Literatur

  • Golo Roden: Auf der Fährte von C#, 2008, Springer-Verlag, ISBN 978-3-5402-7888-7 (Volltext online unter guide to C#)
  • Andreas Kühnel: Visual C# 2008. Galileo Computing, ISBN 978-3-8362-1172-7 (Volltext online)
  • Daniel Moses / Johannes Nowak: C# Programmieren unter .NET, 2002, Franzis' Verlag GmbH, ISBN 3-7723-7224-4

Weblinks


Wikimedia Foundation.

Игры ⚽ Поможем написать курсовую

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

  • Csharp — Dieser Artikel behandelt die Programmiersprache C#. In der Musik bezeichnet C# (bzw. C♯) den Ton Cis. C# Paradigmen: strukturiert, imperativ, objektorientiert, funktional Erscheinungsjahr …   Deutsch Wikipedia

  • CSharp — …   Википедия

  • Langage de programmation CSharp — C sharp Pour les articles homonymes, voir Sharp et .cs. C# …   Wikipédia en Français

  • Namespace — This article is about namespaces in general. For their use in computing, see Namespace (computer science). For their use in Wikipedia, see Wikipedia:Namespace. In general, a namespace is a container that provides context for the identifiers… …   Wikipedia

  • Exception handling — is a programming language construct or computer hardware mechanism designed to handle the occurrence of exceptions, special conditions that change the normal flow of program execution. Programming languages differ considerably in their support… …   Wikipedia

  • Delegation (programming) — For the authorization related term, see delegation in IT. In object oriented programming, there are two related notions of delegation. Most commonly, it refers to a programming language feature making use of the method lookup rules for… …   Wikipedia

  • Microsoft Visual Studio Express — Developer(s) Microsoft Stable release 2010  …   Wikipedia

  • Lock (computer science) — In computer science, a lock is a synchronization mechanism for enforcing limits on access to a resource in an environment where there are many threads of execution. Locks are one way of enforcing concurrency control policies. Contents 1 Types 2… …   Wikipedia

  • Method signature — In computer programming, especially object oriented programming, a method is commonly identified by its unique method signature, which usually includes the method name, and the number, types and order of its parameters.[1] A method signature is… …   Wikipedia

  • Type conversion — This article is about the computer science concept. For the aviation licensing process, see Type conversion (aviation). In computer science, type conversion, typecasting, and coercion refers to different ways of, implicitly or explicitly,… …   Wikipedia

Share the article and excerpts

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