Tässä artikkelissa kuvataan C # -kielen syntaksi . Kuvattu syntaksi on täysin yhteensopiva C#-kielen syntaksin kanssa .Net Frameworkissa ja Mono .
Tunniste on koodissa olevan entiteetin nimi . Tunnisteiden nimeämiselle on olemassa standardi, jota tulee käyttää koodissa. Tunnus voi:
Tunniste ei voi:
Avainsanat ovat ennalta määritettyjä varattuja tunnisteita, joilla on erityinen syntaktinen merkitys. Kielessä on kahden tyyppisiä avainsanoja - varattu mihin tahansa koodin osaan ja asiayhteyteen. Ensimmäisen tyypin sanoja, kuten false tai byte , voidaan käyttää vain avainsanoina. Toisen tyypin sanoilla, kuten sanalla where , on erityinen merkitys vain tietyssä kontekstissa, ja niitä voidaan käyttää tunnisteina sen ulkopuolella. [MSDN 1] Jos sinun on silti käytettävä avainsanaa tunnisteena, sinun on ilmoitettava se @-etuliitteellä, kuten @byte . [MSDN 1]
Avainsanat C# | |||
---|---|---|---|
abstrakti | kuten | pohja | bool |
tauko | tavu | tapaus | ottaa kiinni |
hiiltyä | tarkistettu | luokkaa | konst |
jatkaa | desimaali | oletuksena | delegoida |
tehdä | kaksinkertainen | muu | enum |
tapahtuma | selkeää | ulkoinen | väärä |
vihdoinkin | korjattu | kellua | varten |
jokaiselle | mene | jos | implisiittinen |
[MSDN 2] :ssa | in (yleinen muuntaja) [MSDN 3] | int | käyttöliittymä |
sisäinen | On | Lukko | pitkä |
nimiavaruus | Uusi | tyhjä | esine |
operaattori | ulos [MSDN 4] | ulos (yleinen muuntaja) [MSDN 5] | ohittaa |
parametrit | yksityinen | suojattu | julkinen |
Lue ainoastaan | viite | palata | sbyte |
sinetöity | lyhyt | koko | stackalloc |
staattinen | merkkijono | struct | vaihtaa |
Tämä | heittää | totta | yrittää |
tyyppi | uint | ulong | valitsematon |
turvaton | kehotus | käyttämällä | virtuaalinen |
mitätön | haihtuvia | sillä aikaa |
Kontekstiavainsanat C# | |||
---|---|---|---|
lisätä | dynaaminen | alkaen | saada |
maailmanlaajuisesti | ryhmä | sisään | liittyä seuraan |
päästää | tilata mennessä | osittainen (tyyppi) [MSDN 6] | osittainen (menetelmä) [MSDN 7] |
Poista | valitse | aseta | arvo |
var | missä (yleinen rajoitus
tyyppi) [MSDN 8] |
missä (kyselylauseke) [MSDN 9] | tuotto |
Esimerkkejä:
merkkijono @out ; //Jos haluat antaa tunnisteelle avainsanalle identtisen nimen, sinun on käytettävä @ -etuliitemerkkijonotunnistetta ; //C# tukee Unicodea ja sallii tunnisteiden nimeämisen millä tahansa Unicode -merkkijonolla var { get ; asettaa ;}; //Sinun ei tarvitse käyttää @-etuliitettä tässä. var - kontekstiavainsana public void function () { var s = "" ; //Jotta kääntäjä määrittää automaattisesti muuttujan tyypin, käytetään avainsanaa var }Kokonaisluvut | |
---|---|
Heksadesimaali | 0xF5, 0x[0..9, A..F, a..f]+ |
Desimaalit | 245, [0..9]+ |
Liukulukuluvut | |
yksittäinen tarkkuus | 23,5F, 23,5f; 1.72E3F, 1.72E3f, 1.72e3F, 1.72e3f |
kaksinkertainen tarkkuus | 23,5, 23,5D, 23,5d; 1.72E3, 1.72E3D, ... |
Päivämäärät | |
päivämäärä | Ei tueta |
Symbolit | |
symboli | 'a', 'Z', '\u0231' |
jouset | |
linja | "Hei, maailma" "C:\\Windows\\" , @"C:\Windows\" |
Escape-hahmot [1] | |
Unicode- merkkikoodi | \u ja merkkikoodi |
välilehtimerkki _ | \t |
tilaa | \b |
vaunun paluu | \r |
sivunvaihto | \f |
kenoviiva | \\ |
yksi lainaus | \' |
kaksoislainaus | \" |
rivin käännös | \n |
Muuttuja on tunniste, joka sisältää jonkin arvon. Muuttujan määrittelee tyyppi ja nimi, ja se voidaan myös alustaa, kun se ilmoitetaan. Voit ilmoittaa muuttujia vain funktioiden sisällä.
Ilmoitus int muuttuja _ //Alustamattoman kokonaislukutyyppisen muuttujan, jonka nimi on muuttuja, ilmoitus Alustus int muuttuja _ //Alustamattoman muuttujamuuttujan ilmoitus = 1 ; //Muuttujan alustus Ilmoitus ja alustus int muuttuja = 1 ; //Samanaikainen ilmoitus ja muuttujan alustusVoit ilmoittaa useita samantyyppisiä muuttujia kerralla:
int a , b ; int a = 2 , b = 3 ; Implisiittinen tyyppi Esitelty C# 3.0 :ssaJos kääntäjä pystyy määrittämään muuttujan tyypin alustuksen yhteydessä, se voidaan jättää pois korvaamalla se avainsanalla var :
var chars = uusi merkki [] { 'A' , 'O' }; //kääntäjä muuntaa muotoon char[] chars = uusi merkki[] {'A', 'O'}; var numerot = uusi Lista < int >(); //kääntäjä muuntaa List<int> numeroiksi = new List<int>();Katso myös
Vakio on tunniste, joka sisältää arvon, jota ei saa muuttaa ohjelman suorituksen aikana. Vakiot ovat implisiittisesti staattisia .
constPaikallinen muuttuja tai ominaisuus tietyllä arvolla voidaan ilmoittaa const - avainsanalla , jonka jälkeen sen arvoa ei voi muuttaa.
luokka Foo { const double PI = 3,1415 ; Foo () { const int countOfPlanets = 9 ; } } readonlyVain luku -avainsanalla ilmoitettua ominaisuutta , kuten vakiota, ei voi muuttaa alustuksen jälkeen. Toisin kuin kenttä, jossa on avainsana const, se voidaan kuitenkin alustaa rakentajassa.
class Foo { vain luku int a = 3 ; vain luku -merkkijono b ; vain luku StringBuilder builder ; Foo () { b = "merkkijono" ; rakentaja = uusi StringBuilder (); } }Operaattoreita {...}käytetään merkitsemään koodilohkojen alkua ja loppua sekä osoittamaan laajuus. Aaltosulkeiden sisällä ilmoitettu tunniste näkyy vain niiden sisällä ja sisäkkäisissä laajuuksissa. Seuraava esimerkki osoittaa, kuinka koodilohko ja laajuudet toimivat:
void doSomething () { int a ; { int b ; a = 0_ _ } a = 1_ _ b = 1 ; //Kääntäjä antaa tähän virheen, koska muuttuja b on ilmoitettu alueella, joka ei ole tämän koodin käytettävissä. }C#-kielellä kirjoitetut hakemukset koostuvat luokista ja niiden jäsenistä. Luokat ja muut tyypit ilmoitetaan nimiavaruuksissa, kuten myös muissa luokissa.
nimiavaruus FooNimitila { luokka Foo { luokka SisällytettyLuokka { } } }Nimiavaruus on osa tyypin nimeä. Käytetään ryhmittelemään tyyppejä tai erottamaan tyypit, joilla on sama nimi mutta eri toiminnot.
Järjestelmä . I.O._ _ DirectoryInfo //Class DirectoryInfo IO-nimiavaruudessa, joka on sisäkkäinen System-nimiavaruudessaNimiavaruus on ilmoitettu seuraavasti:
nimiavaruus Sovellus { //Jäsenet ovat miehiä } Avainsana usingLuokkaa käytettäessä sen nimiavaruutta ei tarvitse tarkentaa, jos se on määritetty .cs-tiedostossa using-ohjeella. Tämä sijoitetaan yleensä lähdetiedoston yläosaan, mutta se voidaan sijoittaa muualle, kuten luokkaan.
käyttäen System ; käyttämällä System.Collections -ohjelmaa ;Lisäksi direktiivi usingantaa sinun luoda nimiavaruuden tai kirjoittaa aliaksia esimerkiksi, jos sen nimi on liian pitkä:
käyttäen Net = System . netto ; käyttäen DirInfo = System . I.O._ _ DirectoryInfo ;Jokaisella sovelluksella, olipa se sitten konsoli tai graafinen, on oltava sisääntulopiste. C#-sovelluksessa tämä piste on menetelmä Main, jolla voi olla vain yksi esiintymä ja sen on oltava staattinen. Tämä menetelmä ei välttämättä palauta arvoa (avainsana void):
static void Main ( merkkijono [] args ) { }...tai palauta kokonaisluku, joka on ohjelman poistumiskoodi: jos ohjelma poistui ilman virhettä, tämä koodi on 0.
static int Main ( merkkijono [ ] args ) { return 0 ; }Operaattoriluokka | Operaattorit |
---|---|
Aritmeettinen | + - * / % |
Boolean (looginen ja bittikohtainen) | & | ^ ! ~ && || |
Merkkijonojen ketjutus | + |
lisäys, vähennys | ++ -- |
Siirtää | << >> |
Vertailu | == != < > <= >= |
Tehtävä | = += -= *= /= %= &= |= ^= <<= >>= |
Pääsy jäsenille | . |
Indeksointi | [ ] |
Heittää | ( ) |
Ehdollinen | ? : |
Luo objekti | new |
Kirjoita tiedot | as is sizeof typeof |
Ylivuototarkastus | checked unchecked |
Työskentely osoittimien kanssa | * -> [] & |
Jotkut operaattorit voivat olla ylikuormitettuja. Operaattorin ylikuormittamiseksi sinun on määritettävä staattinen funktio, jonka nimi koostuu avainsanasta operatorja itse operaattorista. Unaarioperaattoreille funktiolla on oltava yksi parametri, binääri- ja vertailuoperaattoreille kaksi. Molemmissa tapauksissa yhden parametrin on oltava samaa tyyppiä kuin sen ilmoittanut luokka tai rakenne.
public static Foo- operaattori +( Foo foo , Bar bar ) { return new Foo ( foo . Value + bar . Value ); }Luettelo ylikuormitetuista operaattoreista:
Operaattorit | |
---|---|
Unaariset operaattorit | + - ! ~ ++ -- true false |
Binäärioperaattorit | + - * / % & | ^ << >> |
Vertailuoperaattorit
voidaan ylikuormittaa vain pareittain |
== != < > <= >= |
Katso myös
Cast-operaattoria ei voi ylikuormittaa, mutta voit määrittää eksplisiittisiä muunnosoperaattoreita (type casting) - eksplisiittinen ja implisiittinen muunnos - implisiittinen. Ne eroavat toisistaan siinä, että implisiittiset muunnosoperaattorit eivät saa tehdä poikkeuksia ja niiden on varmistettava, että tiedot säilyvät. [MSDN 10] . Eksplisiittisessä muunnoksessa sinun on käytettävä operaattoria ( ), implisiittisen muunnoksen yhteydessä ei.
Implisiittinen muunnosoperaattori
Selkeä muunnosoperaattori
Operaattori ason cast-operaattori. Jos tyypin muuntaminen on mahdollista, operaattori palauttaa määritetyn tyypin objektin, muuten se palauttaa null.
Stream stream = Tiedosto . Avaa ( @"C:\Temp\data.dat" ); FileStream fstream = suoratoisto tiedostona ; _ // Palauttaa objektin. String str = stream kuten String ; //Epäonnistuu ja palauttaa nollan.Jos vasemman muuttujan arvo on nolla, niin oikeanpuoleisen muuttujan arvo palautetaan, muuten palautetaan vasemman muuttujan arvo.
Seuraava koodi
palauttaa ifNotNullValue ?? muutenValue ;vastaava
palauttaa ifNotNullValue == null ? muutenArvo : ifNotNullValue ;C# | |
---|---|
Versiot |
|
PÄÄLLÄ |
|
Liittyvät |