C dieso (programlingvo)

objektema plurparadigma programlingvo far Microsoft

C# (angle nomata C sharp) estas objektema programlingvo kreita de Microsoft. La lingvo estas parto de la infrastrukturo .NET ankaŭ de Microsoft. Ekzistas normoj de ECMA kaj ISO pri C#, sed la plej konataj tradukilo kaj funkcibiblioteko estas tiuj de Microsoft.

C#
multparadigma programlingvo • klas-baza programlingvo • altnivela programlingvo • strikta programlingvo • evento-kondukata programlingvo • ordonema programlingvo • funkcia programlingvo • komuna programlingvo
Paradigmo: Diversaj-paradigmoj programlingvo, imperativa, objektema
Paradigmo(j): strukturita programado • ordonema programadoobjektema programado • evento-kondukata programado • funkcia programado • komuna programado • reflektado • klas-baza programado • strict programming • multparadigma programado
Aperis en: 2001
Aŭtoro(j): Microsoft
Aktuala versio: 6.0 (Julio de 2015)
Tipa sistemo: statika, forta
Kreita sub la influo de: C++, Java, Eiffel, Modula-3
Havas influon sur: D, Java, Vala, Windows PowerShell
vdr

La plej forta influo super la kreo de C# estas Java. Plie, C# estis influita de C++, Delphi. La ĉefa projektisto de C# estas Anders Hejlsberg, kiu antaŭe kreis Delphi-n, kiam li laboris en Borland.

Programoj verkitaj per C# rulas en infrastrukturo nomata CLI (Common Language Infrastructure), samkiel aliaj programlingvoj de .NET. La tradukilo unue kreas duonkodon (simile al Java), kiu poste estas tradukita al maŝinkodo je la ruligo de la programo, per JIT-tradukilo.

Ekzemplaj programoj redakti

Unue, la klasika programo "Saluton, mondo!" skribita en C#. Ĝi nur montras la mesaĝon kaj finiĝas:

  using System;
  namespace ProgramoSalutonMondo
  {
    class SalutonMondo
    {
      [STAThread]
      static void Main(string[] args)
      {
        Console.WriteLine("Saluton, mondo!");
      }
    }
  }

Ĉi tie estas pli kompleksa ekzemplo de programo en C#. Ĉi tiu programo montras iujn objektemajn esprimojn de la lingvo.

 using System;
 namespace Ekzemplo
 {
     public sealed class Saluton
     {
         string mia;
         public string Valoro
         {
             get
             {
                 return mia;
             }
             set
             {
                 if(value== null)
                     throw new ArgumentNullException();
                 else
                     mia = value;
             }
         }
         public Saluton()
         {
             mia = "Saluton!";
         }
         public override String ToString()
         {
             return mia;
         }
         public static void Main()
         {
             Saluton sal = new Saluton();
             Console.WriteLine(sal.ToString());
             Console.WriteLine(sal.Valoro);
             Console.WriteLine(sal);
             sal.Valoro = "Blah.";
             Console.WriteLine(sal.ToString());
             Console.WriteLine(sal.Valoro);
             Console.WriteLine(sal);
         }
         //La rezulto estas:
         //Saluton!
         //Saluton!
         //Saluton!
         //Blah.
         //Blah.
         //Blah.
     }
 }