C dieso (programlingvo)
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 programado • objektema 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 |
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.
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 | redakti fonton]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.
}
}