Programiranje

Nove funkcije v C # 7

C # 7 doda veliko novih funkcij s posebnim poudarkom na preprostosti kodiranja in izboljšani zmogljivosti. Omogoča veliko osredotočenost na porabo podatkov, poenostavitev kode in zmogljivost ter je zasnovana tako, da odpravlja bolečino zaradi potrebe po pisanju dodatne kode na več načinov.

Tu je kratek pogled na novosti in izboljšave v C # 7.

  • Podpora za lokalne funkcije
  • Izboljšana podpora za vrste Tuple
  • Vrste zapisov
  • Ujemanje vzorcev
  • Tipi, ki niso ničelni
  • Nespremenljive vrste
  • Boljša podpora za zunanje spremenljivke

Boljša podpora za zunanje spremenljivke

Sposobnost razglasitve izhodne spremenljivke takoj na mestu uporabe je odlična novost v C # 7. Tu je primer delčka kode, ki to ponazarja.

javna praznina Shrani (izdelek p)

{

p.SaveData (ven int x);

// Običajna koda

}

Dobro mesto za uporabo spremenljivke je znotraj vašega poskusnega bloka. Preprosto uporabite logično spremenljivko out, kjer vrnjena vrsta true pomeni, da je bila operacija uspešna, sicer pa false.

Ujemanje vzorcev

C # 7 nudi odlično podporo za ujemanje vzorcev. Ujemanje vzorcev lahko uporabite za kateri koli tip podatkov, tudi za tipe podatkov po meri. Poleg tega lahko uporabite ujemanje vzorcev za pridobivanje vrednosti iz izraza. Tu je delček kode, ki ponazarja ujemanje vzorcev pri delu!

object obj = "To je prikaz ujemanja vzorcev v C # 7";

if (obj je niz str)

{

Console.WriteLine (str);

}

Podpora za lokalne funkcije

Pogosto boste morda potrebovali pomožno funkcijo, ki jo je treba uporabiti le enkrat - morda le v enem načinu. Zdaj lahko take funkcije prijavite v drugi funkciji. Takšne funkcije so znane kot lokalne funkcije. V bistvu vam podpora za lokalne funkcije omogoča prijavo metod znotraj obsega bloka. Čeprav je bilo to mogoče z uporabo vrst Func in Action z anonimnimi metodami v prejšnjih različicah jezika C #, je bilo malo izzivov. Niso podpirali generikov, parametrov in parametrov ref in out.

Boljša podpora za Tuples

Tuple je začasno združevanje vrednosti. Podoben je razredu POCO, vendar tistemu, ki nastane sproti. Glavna prednost uporabe Tuple je omogočiti metodi vrnitev več vrednosti. Morda boste želeli s pomočjo nabora predstaviti nabor raznovrstnih podatkov in zagotoviti enostaven način dostopa do teh podatkov. Tuple niso nič novega in obstajajo že kar nekaj časa. Nagrade imate v programskih jezikih F # in Python. Korito lahko izkoristite za shranjevanje urejenega, končnega zaporedja nespremenljivih, končnih zaporedij homogenih ali heterogenih podatkov določenih velikosti.

Zdaj imate podporo tudi za literale Tuple in dekonstrukcijo Tuple. V C # 7 se tuple šteje za vrsto vrednosti. Zato je spremenljiv tip in je glede učinkovitosti veliko bolj učinkovit.

Neveljavne referenčne vrste

Vrednosti nične vrednosti so bile prvič predstavljene v C # 2.0. Referenčni tip, ki ga ni mogoče razveljaviti, je ravno nasproten tej lastnosti. V bistvu se referenčna vrsta, ki se ne more razveljaviti, uporablja za označevanje referenčne vrste, za katero je zagotovljeno, da ni nična. Tukaj je opisano, kako je v C # 7 naveden neveljaven referenčni tip:

vrvica! str; // To je ničelna referenčna vrsta

Boljša podpora za nespremenljive predmete

Nespremenljiv objekt je tisti, katerega stanja po ustvarjanju ni mogoče spremeniti. To naredi nespremenljivo nit predmeta varno. Recimo, da ustvarite razred, ki vsebuje lastnost, ki ima getter, ne pa tudi nastavitelja. Ja očitno se zdi, da je primer razreda nespremenljiv. Vendar se pozneje, če nekdo doda nastavitelj za isto lastnost, nespremenljivost izgubi, kajne?

Tukaj na pomoč priskoči boljša podpora za nespremenljive tipe. S C # 7 lahko ustvarite nov primerek, ki temelji na drugem primerku. Evo, kako je to mogoče doseči.

var firstObject = nov zaposleni (101);

var secondObject = firstObject z {EmployeeId = 102};

Vrste zapisov

Vrste zapisov omogočajo ustvarjanje vrste z uporabo samo lastnosti. V bistvu je vrsta zapisa podatkovni tip, ki vsebuje samo lastnosti. Naslednji delček kode prikazuje, kako je mogoče deklarirati vrsto zapisa.

razred Pravokotnik (int višina, int širina);

$config[zx-auto] not found$config[zx-overlay] not found