b'\n_START_ARTICLE_\nC-sharp\n_START_SECTION_\nHistorik\n_START_PARAGRAPH_\nAnders Hejlsberg rekryterades 1996 till Microsoft som arkitekt f\xc3\xb6r Visual J++. Hejlsberg blev sedan chefsarkitekt f\xc3\xb6r C#. C# utvecklades f\xc3\xb6r att Microsoft vill ha ett spr\xc3\xa5k som liknade Java, men som man sj\xc3\xa4lv \xc3\xa4gde och som var inriktat mot Microsoft Windows, till skillnad fr\xc3\xa5n Java som \xc3\xa4r mer plattformsoberoende._NEWLINE_Version 1.2 av C# l\xc3\xa4mnades in till ECMA f\xc3\xb6r standardisering och blev 2001 godk\xc3\xa4nt som ECMA-334. C# \xc3\xa4r \xc3\xa4ven ISO-standardiserat som ISO/IEC 23270. Version 2.0 av C# sl\xc3\xa4pptes i samband med version 2005 av Microsoft Visual Studio i november 2005. Version 3.0 sl\xc3\xa4pptes i samband med .NET Framework 3.5 i november 2007.\n_START_SECTION_\nProgramkodsexempel\n_START_PARAGRAPH_\nDet klassiska "Hello, world!"-programmet i C#:_NEWLINE_using System;namespace HelloWorld{_NEWLINE_  class Hello_NEWLINE_  {_NEWLINE_    public static void Main()_NEWLINE_    {_NEWLINE_      Console.WriteLine("Hello World!");_NEWLINE_      Console.Readline();_NEWLINE_    }_NEWLINE_  }}_NEWLINE_using System;namespace HelloWorld{_NEWLINE_  class Hello_NEWLINE_  {_NEWLINE_    static string hello = "Hello World!";_NEWLINE__NEWLINE_    public static void Main()_NEWLINE_    {_NEWLINE_      Console.WriteLine(hello);_NEWLINE_    }_NEWLINE_  }}_NEWLINE_B\xc3\xa5da Programmen matar ut textstr\xc3\xa4ngen "Hello World!"._NEWLINE_If-sats i C#:_NEWLINE_using System;namespace If{_NEWLINE_  class Program_NEWLINE_   {_NEWLINE_     public static void Main()_NEWLINE_     {_NEWLINE_       int ageOfKalle;_NEWLINE_       int ageOfKajsa;_NEWLINE_       Console.WriteLine("Hur gammal \xc3\xa4r Kalle?");_NEWLINE_       ageOfKalle = int.Parse(Console.ReadLine());_NEWLINE_       Console.WriteLine("Hur gammal \xc3\xa4r Kajsa?");_NEWLINE_       ageOfKajsa = int.Parse(Console.ReadLine());_NEWLINE_       if(ageOfKalle > ageOfKajsa)    //om Kalle \xc3\xa4r \xc3\xa4ldre \xc3\xa4n Kajsa_NEWLINE_       {_NEWLINE_          Console.WriteLine("Kalle \xc3\xa4r \xc3\xa4ldre \xc3\xa4n Kajsa");_NEWLINE_       }_NEWLINE_       else if(ageOfKalle < ageOfKajsa)    //om kalle \xc3\xa4r yngre \xc3\xa4n Kajsa_NEWLINE_       {_NEWLINE_          Console.WriteLine("Kalle \xc3\xa4r yngre \xc3\xa4n Kajsa");_NEWLINE_       }_NEWLINE_       else   //Intr\xc3\xa4ffar om ingen av de ovanst\xc3\xa5ende if-satserna intr\xc3\xa4ffat_NEWLINE_       {_NEWLINE_          Console.WriteLine("Kalle \xc3\xa4r lika gammal som Kajsa");_NEWLINE_       }_NEWLINE_     }_NEWLINE_   } _NEWLINE_}_NEWLINE_Programmet fr\xc3\xa5gar hur gamla Kajsa och Kalle \xc3\xa4r, sedan matar det ut en textstr\xc3\xa4ng beroende p\xc3\xa5 deras \xc3\xa5lder._NEWLINE_Objekt i C#:_NEWLINE_using System;namespace CustomObject{_NEWLINE_  // V\xc3\xa5r egen klass_NEWLINE_  class Car_NEWLINE_  {_NEWLINE_    // N\xc3\xa5gra f\xc3\xa4lt som tillh\xc3\xb6r klassen_NEWLINE_    public string model;_NEWLINE_    public int year;_NEWLINE__NEWLINE_    // Detta h\xc3\xa4nder d\xc3\xa5 ett nytt Car-objekt skapas_NEWLINE_    public Car()_NEWLINE_    {_NEWLINE_      this.model = "";_NEWLINE_      this.year = 0;_NEWLINE_    }_NEWLINE_  }_NEWLINE__NEWLINE_  class Main_NEWLINE_  {_NEWLINE_    public static void Main()_NEWLINE_    {_NEWLINE_      // Skapa ett nytt Car-objekt_NEWLINE_      Car volvo = new Car();_NEWLINE_      volvo.model = "Volvo Amazon";_NEWLINE_      volvo.year = 1956;_NEWLINE__NEWLINE_      // Skriv ut bilmodellen_NEWLINE_      Console.WriteLine("Modell: " + volvo.model);_NEWLINE_      Console.WriteLine("\xc3\x85r: " + volvo.year);_NEWLINE_    }_NEWLINE_  }}_NEWLINE_Det finns olika s\xc3\xa4tt att instantiera ett objekt av en klass p\xc3\xa5, ett exempel vore att anv\xc3\xa4nda Bil bil = new Bil(); eller som h\xc3\xa4r nedan beskriver, det nedan vore precis som att anv\xc3\xa4nda sig av en konstruktor ist\xc3\xa4llet. Ist\xc3\xa4llet har man valt att l\xc3\xa5ta klassen vara m\xc3\xb6jlig att konstruera utan en konstruktor och ist\xc3\xa4llet anv\xc3\xa4nder man metodiken nedan._NEWLINE_Ett lite mer komplicerat exempel av objektorientering i C# \xc3\xa4r f\xc3\xb6ljande:_NEWLINE_class Program_NEWLINE_    {_NEWLINE_        static void Main(string[] args)_NEWLINE_        {_NEWLINE_            //Metod ett_NEWLINE_            Car car = new Car { Model = "Volvo", RegistrationNumber = "ABC123", Owner = new Person { FirstName = "Fredrik", LastName = "Karlsson", Age = 19 } };_NEWLINE_            //Metod tv\xc3\xa5_NEWLINE_            Car car2 = new Car();_NEWLINE_            car2.Model = "Volvo";_NEWLINE_            car2.RegistrationNumber = "ABC123";_NEWLINE__NEWLINE_            car2.Owner = new Person();_NEWLINE_            car2.Owner.FirstName = "Fredrik";_NEWLINE_            car2.Owner.LastName = "Karlsson";_NEWLINE_            car2.Owner.Age = 19;_NEWLINE__NEWLINE_            Console.Write(car.ToString());_NEWLINE_            Console.ReadKey();_NEWLINE_        }_NEWLINE_    }_NEWLINE__NEWLINE_    class Person_NEWLINE_    {_NEWLINE_        public string FirstName { get; set; }_NEWLINE_        public string LastName { get; set; }_NEWLINE_        public int Age { get; set; }_NEWLINE__NEWLINE_        public override string ToString()_NEWLINE_        {_NEWLINE_            return string.Format("{0} {1}, {2} \xc3\xa5r gammal.", FirstName, LastName, Age);_NEWLINE_        }_NEWLINE_    }_NEWLINE__NEWLINE_    class Car_NEWLINE_    {_NEWLINE_        public string RegistrationNumber { get; set; }_NEWLINE_        public string Model { get; set; }_NEWLINE_        public Person Owner { get; set; }_NEWLINE__NEWLINE_        public override string ToString()_NEWLINE_        {_NEWLINE_            return string.Format("En {0} med registreringsnummer {1}, \xc3\xa4gs av {2}", Model, RegistrationNumber, Owner.ToString());_NEWLINE_        }_NEWLINE_    }_NEWLINE_Programmet anv\xc3\xa4nder ett egengjort objekt f\xc3\xb6r att enkelt lagra information om bilar._NEWLINE_Ovanst\xc3\xa5ende exempel \xc3\xa4r alla program f\xc3\xb6r kommandotolken._NEWLINE_C# kan \xc3\xa4ven anv\xc3\xa4ndas f\xc3\xb6r att g\xc3\xb6ra bland annat grafiska program i Windows, systemtj\xc3\xa4nster och DLL-filer._NEWLINE_I ett grafiskt program finns inte m\xc3\xb6jligheten att anv\xc3\xa4nda sig av Console.WriteLine("text h\xc3\xa4r"); utan information m\xc3\xa5ste ges till anv\xc3\xa4ndaren p\xc3\xa5 annat s\xc3\xa4tt, exempelvis genom en textBox, richTextBox eller en label vilket skulle kunna se ut s\xc3\xa5h\xc3\xa4r:_NEWLINE_//F\xc3\xb6ljande exempel byter ut texten i label1 till "Hello World!"if(checkbox1.Checked){_NEWLINE_    label1.Text = "Hello World!";}'