Programski jezik C sharp

Iz Wikipedije, proste enciklopedije
Skoči na: navigacija, iskanje

C#[a] je večparadigmski programski jezik, ki obsega močo tipizacijo ter imperativno, deklarativno, funkcijsko, generično, komponentno orientirano in objektno orientirano programiranje ter vsebuje zmožnost refleksije. Upravljanje s pomnilnikom temelji na čistilniku spomina.[1][2][3]

C# se pri skladnji zgleduje po številnih drugih programskih jezikih, najbolj izrazito po C, C++ in javi. Jezik je bil zelo skrbno načrtovan z namenom uporabiti izkušnje pri razvoju drugih programskih jezikov, uporabiti najboljše značilnosti in popraviti nekatere pomanjkljivosti, ki so se pokazale v razvoju teh jezikov. Pomemben primer so generični tipi, katerih specifikacija je v C# bolj dodelana kot v javi, kar omogoča bolje optimizirano strojno kodo, večjo varnost pri definiciji tipov (lažje odkrivanje nekonsistentnosti v času prevajanja) ter striktno upoštevanje kovariančnosti in kontravariančnosti.[4][5]

C# je programski jezik, ki cilja na izvajalsko okolje CLI in s tem ogrodje .NET ter njegove različice kot je Mono. Zaradi tega se programi v C# izvajajo v posebnem zvajalskem okolju in se programska koda v tem jeziku šteje za upravljano kodo. Dele programov napisane v C# je zato enostavno povezovati z deli, ki so napisani v kateremkoli drugem programskem jeziku skladnem s CLI, z obstojem prenosljivih implementacij CLI (npr. [Mono ali .NET Core) pa imajo programi napisani v C# tudi zelo dobro prenosljivost med različnimi platformami. Zaradi točne specifikacije programskega jezika in vmesnega jezika (Common intermediate language|CIL), se lahko program napisan v C# neposredno prevede in izvede na drugih okoljih, ne da bi bilo treba za prenosljivost program spreminjati. Zaradi omenjenih značilnosti, jasne in dodelane skladnje, velike izraznosti (možnost uporabe različnih paradigem) je C# eden najbolj priljubljenih programskih jezikov.[6][7]

C# je razvilo ga podjetje Microsoft v okviru razvoja ogrodja .NET. Jezik sta kot standard odobrili organizaciji Ecma (ECMA-334) in ISO (ISO/IEC 23270:2006).

Različice[uredi | uredi kodo]

različica specifikacija datum .NET Visual Studio
ECMA ISO/IEC Microsoft
C# 1.0 December 2002 April 2003 Januar 2002 Januar 2002 .NET 1.0 Visual Studio .NET 2002
C# 1.2 Oktober 2003 April 2003 .NET 1.1 Visual Studio .NET 2003
C# 2.0 Junij 2006 September 2006 September 2005[b] November 2005 .NET 2.0 Visual Studio 2005
C# 3.0 Brez[c] Brez Avgust 2007 November 2007

.NET 2.0 (Razen LINQ/Query Extensions)[8]
.NET 3.0 (Razen LINQ/Query Extensions)[8]
.NET 3.5

Visual Studio 2008
Visual Studio 2010
C# 4.0 Brez Brez April 2010 April 2010 .NET 4 Visual Studio 2010
C# 5.0 V teku[9] Brez [c] Junij 2013 Avgust 2012 .NET 4.5 Visual Studio 2012
Visual Studio 2013
C# 6.0 Brez[c] Brez Brez Julij 2015 .NET 4.6 Visual Studio 2015

Značilnosti[uredi | uredi kodo]

Razločevalne značilnosti[uredi | uredi kodo]

Podatkovni tipi[uredi | uredi kodo]

Generični tipi[uredi | uredi kodo]

Generični tipi so bili uvedeni v različici 2.0. Generični tipi uporabljajo tipske parametre, ki omogočajo načrtovanje razredov in metos, ki ne specifirajo natančno vseh uporabljenih tipov na ravni definicije, ampak se to zgodi šele pri instanciaciji razreda oziroma klicu metode.

Zgled:

// Deklaracija generičnega razreda - seznama elementov določenega tipa;
// Tip elementov v tem trenutku ni znan, razred se lahko pozneje uporabi 
// kot seznam elementov kateregakoli tipa. N nivoju generične definicije
// se na tip elementov sklicujemo s tipskim parametrom T:
public class GenericList<T>
{
    void Add(T input) { /* ... */ }
}

class TestGenericList
{
    private class ExampleClass { }
    static void Main()
    {
        // Deklaracija (in definicija) seznama celih števil tipa int:
        GenericList<int> list1 = new GenericList<int>();

        // Deklaracija seznama nizov:
        GenericList<string> list2 = new GenericList<string>();

        // Deklaracija seznama elementov tipa ExampleClass:
        GenericList<ExampleClass> list3 = new GenericList<ExampleClass>();
    }
}

Zgledi[uredi | uredi kodo]

Spodaj je program, ki na konzolo izpiše sporočilo »pozdravljen, svet!«:

using System;

class Program
{
    static void Main()
    {
        Console.WriteLine("Pozdravljen, svet!");
    }
}

Naslednji program isto sporočilo izpiše v novem oknu:

using System.Windows.Forms;

class Program
{
    static void Main()
    {
        MessageBox.Show("Pozdravljen, svet!");
    }
}

Glej tudi[uredi | uredi kodo]

Opombe[uredi | uredi kodo]

  1. ^ Po dogovoru se uporablja kot drugi znak imena jezika znak '#' - znak za število, ASCII vrednost 35 (desetiško oz. 23 šestnajstiško), Unicode U+0023 oziroma HTML #. Gre za drug znak kot tisti, s katerim se označuje višaj v glasbi (npr. nota C♯ oz. Cis) in ima vrednost U+266F oziroma HTML ♯.
  2. ^ Microsoftova specifikacija C# 2.0 vsebuje le nove značilnosti raličice 2.0. Starejše značilnosti so vsebovane v specifikaciji 1.2 (zgoraj).
  3. ^ 3,0 3,1 3,2 Za C# 3.0, 4.0 in 5.0 ne obstajajo specifikacije ECMA ali ISO/IEC.

Sklici[uredi | uredi kodo]

  1. ^ Rasheed (2006).
  2. ^ Uranič (2015).
  3. ^ Lokar; Uranič (2009).
  4. ^ "C#: Yesterday, Today, and Tomorrow: An Interview with Anders Hejlsberg]" (angleščina). 
  5. ^ "Generics in C#, Java, and C++" (angleščina). 
  6. ^ O'Reilly (2006).
  7. ^ "State of the Computer Book Market 2008, part 4 — The Languages" (angleščina). 
  8. ^ 8,0 8,1 "Using C# 3.0 from .NET 2.0" (angleščina). Danielmoth.com. 2007-05-13. Pridobljeno dne 2012-10-04. 
  9. ^ "Mono and Roslyn". Tirania Blog (angleščina). Miguel de Icaza. Pridobljeno dne 2014-04-09.  Delo v teku za C# 5.0.

Viri[uredi | uredi kodo]


Glavni programski jeziki (več)

Industrijski: ABAP | Ada | C | C++ | C# | COBOL | Delphi | Fortran | java | JavaScript | lisp | Objective-C | Perl | PHP | PL/SQL | Python | SAS | sh | SQL | Visual Basic | zbirnik

Akademski: Eiffel | Haskell | Logo | ML | paskal | prolog | scheme | Smalltalk

Zgodovinski: ALGOL | APL | AWK | B | BASIC | Clipper | PL/I | Simula