C Sharp

Fra Wikipedia, den frie encyklopædi
Gå til: navigation, søg
C# er den korrekte titel på denne artikel. Titlen vises forkert på grund af tekniske begrænsninger.
C Sharp

C# (udtales See-sharp på engelsk eller C havelåge på dansk) er et multi-paradigme programmeringssprog, som omfatter imperativ, funktionel, generisk, objektorienteret (klasse-baseret) og komponent-orienterede programmeringsdiscipliner. C# er designet til at være et enkelt, moderne, generelt anvendeligt, objektorienteret programmeringssprog. Det bliver udviklet af Microsoft indenfor .NET, og er senere blevet godkendt som en standard af Ecma (ECMA-334) og ISO (ISO/IEC 23270). C# er et af sprogene, som er designet for Common Language Infrastructure (CLI). Microsofts C# Compiler Team er ledet af danskeren Anders Hejlsberg. C# er baseret på programmeringssprogene C++ og Java. Den seneste version er C# 5.0, som blev udgivet den 15. august 2012.

Fordele[redigér | redigér wikikode]

  • Let at lære – For en C++/Java-programmør bør det ikke være noget problem at gå over til C#, da syntaksen ligner hinanden. Desuden har .NET et stort kodebibliotek som gør det relativt enkelt at opbygge et grafisk program.
  • Flere anvendelsesmuligheder – C# kan både anvendes som kompileringssprog på en lokal computer og som sprog i ASP.NET. Dette gør det enkelt at sammenkoble et program på en computer med en server-side løsning.
  • Mulighed for, på simpel vis, at lave løsninger der fx kan integrere med andre Microsoft produkter som Microsoft Office.
  • C#-kompileren indgår som standard i installationen af Microsoft.NET og kan anvendes uden nogen som helst licenser og udviklingsværktøjer.

Ulemper[redigér | redigér wikikode]

  • Kan være langsomt – C#/.NET-programmer køres præcis som Java-programmer i en virtuel maskine og kan i opstartsfasen opleves som langsom. Værktøjet ngen.exe som indgår i SDK'et kan anvendes til at præ-kompilere MSIL-koden til ægte maskinkode til den aktuelle processorarkitektur. På den måde starter programmet hurtigt op, da ingen JIT-kompilering længere er nødvendig. Bemærk at .NET-assemblies prækompilerede med ngen.exe starter hurtigere men ofte eksekveres langsommere, da ingen optimering af koden er muligt i så vid udstrækning som ved brug af JIT-kompilering.
  • Kræver .NET – De der skal anvende et .NET-program skal som et minimum have det ca. 23 MB store ".NET Framework" installeret på sin computer. .NET 3.0 og tidligere versioner indgår dog som en del af Microsoft Windows Vista.
  • Platformsafhængigt – C# er stærkt bundet til Windows selvom .NET-implementationer findes til andre styresystemer som f.eks. Mono til GNU/Linux.

I december 2001 blev C# standardiseret af ECMA (ECMA-334) og i 2003 af ISO (ISO/IEC 23270).

Sprogets navn[redigér | redigér wikikode]

Navnet "C sharp" blev inspireret af musikalsk notation, hvor en "sharp" (krydstegn for node på dansk) angiver, at den skrevne node skal gøres et halvt trin højere. Dette er tilsvarende navngivningen af C++, hvor ++ angiver at en variabel skal øges med 1.

Tilfældigvis ligner den skarpe firkant fire sammensatte plustegn. Hvor C blev forbedret til C++, blev C++ selv forbedret til C++++ (det vil sige, C#).

Af hensyn til tekniske begrænsninger på displays (standard skrifttyper, browsere osv.) og den omstændighed, at kryds-symbolet (♯, U+266F, Krydstegn for node) ikke findes på et standard tastatur. Derfor blev nummertegnet (#, U0023, Number Sign) valgt til at repræsentere sharptegnet i programmeringssprogets skrevne navn. Denne konvention er afspejlet i ECMA-334 C# Language Specification. Men når det er praktisk muligt at anvende (for eksempel i reklamer, bogomslag og på indpakning), bruger Microsoft det musikalske krydstegn for noder.


Endelsen sharp er blevet brugt af en række andre .NET sprog, der er varianter af eksisterende sprog, herunder J# (et .NET sprog også designet af Microsoft, som er afledt af Java 1.1), A# (fra Ada), og funktionelle F#. Den oprindelige gennemførelse af Eiffel for .NET blev kaldt Eiffel#, et navn der nu er forældet siden hele Eiffel-sproget nu understøttes. Suffikset er også blevet brugt til kodebiblioteker, som f.eks. Gtk# (en .NET indpakning af GTK+ og andre GNOME biblioteker), Cocoa# (en .NET indpakning for Cocoa).

Typografi[redigér | redigér wikikode]

Selvom historien og udtalen af navnet antyder, at navnet burde skrives C – hvilket det også bliver på flere af Microsofts bøger – så skal det ifølge sprogdefinitionen skrives C#.

Hello World[redigér | redigér wikikode]

Et simpelt "Hello world-program" i C#, der kører i en kommandoprompt på en Windows maskine.

using System;
 
class HelloWorld
{
    static void Main()
    {
        Console.WriteLine("Hello world!");
    }
}

Ovenstående giver følgende output i kommandoprompten

Hello world!

Kommentarer[redigér | redigér wikikode]

I C# angiver to skråstreger (//), at det efterfølgende skal opfattes som en kommentar af compileren, og derfor ikke skal fortolkes. Dette er en overlevering fra C++

public class Foo
{
     // Dette er en kommentar
     public static void Bar(int firstParam) { } // En kommentar
}

En kommentar der spænder over flere linjer, indikeres ved brug af skråstreg/stjerne-notation (/*) og afsluttes igen med stjerne/skråstreg (*/). Alt hvad der står i mellem bliver af compileren opfattet som en kommentar. Det bruges ofte til at springe kode over, som måske ikke ønskes afviklet, men måske skal genindsættes senere.

public class Foo
{
     /* En kommentar
        der spænder over flere linjer
     */
     public static void Bar(int firstParam) { } 
}

Eksterne henvisninger[redigér | redigér wikikode]

Wikibooks-logo.svg
Wikibooks har en bog, der er relateret til denne artikel: