Programovanie

Nové funkcie v C # 6

C # 6 sa dodáva s Visual Studio 2015 a prichádza s niekoľkými zaujímavými novými funkciami. Existuje veľa funkcií, ktoré podporujú menej neporiadku v kóde a čistejšie udržiavateľný kód pri písaní. V tomto príspevku by som vás rád oboznámil s niektorými novými funkciami v jazyku C #.

Filtre výnimiek

Filtre výnimiek nie sú vo VB nové - teraz máte túto funkciu aj v C #. Umožňujú vám filtrovať výnimky v kóde podľa závažnosti. Tu je príklad.

skús

{

// nejaký kód, ktorý by mohol spôsobiť výnimku

}

catch (Výnimka výnimky) if (exception.GetType ()! = typeof (SqlException))

{

ExceptionManager.HandleException (výnimka);

}

Vyššie uvedený kód kontroluje, či je vyvolaná výnimka typu SqlException. Ak nie, výnimka sa spracuje. Tu je ďalší príklad, ktorý ukazuje, ako môžete skontrolovať vlastnosť Message objektu výnimky a podľa toho určiť podmienku.

skús

{

hodiť novú CustomException ("");

}

catch (CustomException ex) if (ex.Message == "")

{

// v tomto úlovkovom bloku príde kontrola

}

catch (CustomException ex) if (ex.Message == "")

{

// kontrola nepríde v tomto úlovkovom bloku

}

Podpora asynchrónie v blokoch catch a konečne

Toto je skutočne skvelá vlastnosť. Výnimky často zaznamenávame do súboru alebo databázy. Takéto operácie sú náročné na zdroje a čas, pretože na vykonanie I / O by ste potrebovali prístup na disk. V takýchto situáciách by bolo skvelé, keby ste vo svojich blokoch výnimiek mohli uskutočňovať asynchrónne hovory. Možno budete musieť vykonať niektoré operácie čistenia v bloku konečne, ktoré môžu byť náročné na zdroje a / alebo čas.

S C # 6 už nemusíte blokovať súčasné vlákno pri vykonávaní takýchto operácií náročných na zdroje alebo časovo náročných. Nasledujúci úryvok kódu ilustruje, ako môžete použiť kľúčové slovo await v blokoch catch a konečne.

verejná asynchronná úloha ProcessAsync ()

{

skús

{

// nejaký kód, ktorý by mohol spôsobiť výnimku

}

chytiť

{

čakať na Task.Delay (5000);

}

konečne

{

čaká Task.Delay (1000);

}

}

Nasledujúci úryvok kódu ukazuje, že môžete čakať na volanie vlastnej metódy LogExceptionAsync () na zaznamenávanie výnimiek.

skús

{

// kód, ktorý by mohol spôsobiť výnimku

}

úlovok (výnimka z výnimky)

{

čaká LogExceptionAsync (výnimka);

}

Podpora statických príkazov „using“

Toto je ďalšia príjemná nová funkcia v C # 6, ktorá vám umožňuje vyvolať statickú metódu bez potreby explicitných odkazov. Tu je príklad.

pomocou systému;

pomocou System.Console;

program verejnej triedy

{

private static void Main ()

{

WriteLine („Nové funkcie v C # 6“);

}

}

Ako vidíte vo vyššie uvedenom útržku kódu, už nemusíte explicitne určovať typ pri volaní statickej metódy WriteLine (), ktorá patrí do triedy System.Console. Táto funkcia v podstate podporuje čistejší kód - kód, ktorý sa ľahšie číta, píše a udržuje.

Automatické inicializátory vlastností

Táto vlastnosť umožňuje nastaviť hodnoty vlastností priamo na mieste, kde sú deklarované.

triedy Zákazník

{

verejný reťazec FirstName {get; sada; } = "Joydip";

verejný reťazec Priezvisko {get; sada; } = "Kanjilal";

public int Age {get; sada; } = 44;

}

V starších verziách C # ste museli často používať predvolené konštruktory na nastavenie predvolených hodnôt pre vlastnosti v triede.

Tu je ďalší príklad, ktorý ilustruje syntax skratky na inicializáciu vlastnosti v bode vyhlásenia, pre ktorý nebol definovaný setter.

trieda LogManager

{

verejná statická inštancia LogManager {get; } =

nový LogManager ();

}

Inicializátory slovníka

Táto funkcia umožňuje inicializovať predvolené hodnoty v slovníku s oveľa menším počtom kódov. Toto je príklad, ktorý to ilustruje.

triedny program

{

static void Main (reťazec [] args)

{

Slovník dict = nový slovník ()

{

["USA"] = "Washington DC",

["England"] = "London",

["India"] = "Naí Dillí"

};

}

}

Ako vidíte vo vyššie uvedenom útržku kódu, slovník bol inicializovaný s predvolenými hodnotami v mieste, kde bol deklarovaný. Oveľa príjemnejší prístup v porovnaní s predchádzajúcimi verziami jazyka C #, však?

Primárny konštruktor

Toto je opäť vynikajúca nová funkcia - eliminuje námahu pri písaní kódu na inicializáciu dátových členov triedy z parametrov v metóde konštruktora. Inými slovami, táto funkcia poskytuje syntaktickú skratku pre definíciu konštruktora v triede.

Tu je príklad, ktorý ilustruje, ako sa dajú použiť primárne konštruktory.

trieda zamestnanec (reťazec krstné meno, reťazec priezvisko, adresa reťazca)

{

verejný reťazec FirstName {get; sada; } = meno;

verejný reťazec Priezvisko {get; sada; } = priezvisko;

public string Adresa {get; sada; } = adresa;

}

V tomto článku MSDN nájdete ďalšie informácie o nových funkciách a vylepšeniach v C # 6.

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