Programmēšana

Jaunas funkcijas C # 7

C # 7 pievieno daudz jaunu funkciju, īpašu uzmanību pievēršot kodēšanas vienkāršībai un uzlabotai veiktspējai. Tas lielu uzmanību pievērš datu patēriņam, kodu vienkāršošanai un veiktspējai, un tas ir paredzēts, lai novērstu sāpes, kas saistītas ar papildu koda rakstīšanu vairākos veidos.

Šeit ir īss ieskats jaunumos un uzlabojumos C # 7.

  • Vietējo funkciju atbalsts
  • Uzlabots atbalsts Tuple Types
  • Ierakstu veidi
  • Rakstu saskaņošana
  • Nav atceļami atsauces tipi
  • Nemaināmi veidi
  • Labāks atbalsts mainīgajiem

Labāks atbalsts mainīgajiem

Spēja deklarēt mainīgo mainīgo tieši lietošanas vietā ir lieliska jauna iezīme C # 7. Šeit ir koda fragmenta piemērs, kas to ilustrē.

public void Saglabāt (produkts p)

{

p. Saglabāt datus (out int x);

// Parastais kods

}

Laba vieta mainīgā izmantošanai ir jūsu mēģinājumu blokā. Vienkārši izmantojiet Boolean out mainīgo, ja atgriešanās tips true norāda, ka darbība ir veiksmīga, pretējā gadījumā - false.

Rakstu saskaņošana

C # 7 nodrošina lielisku atbalstu modeļu saskaņošanai. Rakstu atbilstību varat izmantot jebkuram datu tipam, pat pielāgotiem datu tipiem. Turklāt, lai izvilktu vērtības no izteiksmes, varat izmantot modeļu atbilstības priekšrocības. Šeit ir koda fragments, kas ilustrē modeļu atbilstību darbā!

object obj = "Šis ir parauga atbilstības paraugs C # 7";

ja (obj ir virkne str)

{

Console.WriteLine (str);

}

Vietējo funkciju atbalsts

Jums bieži var būt nepieciešama palīga funkcija, kas jāizmanto tikai vienu reizi - varbūt tikai vienā metodē. Tagad jūs varat deklarēt šādas funkcijas citas funkcijas iekšpusē. Šādas funkcijas ir pazīstamas kā vietējās funkcijas. Būtībā vietējo funkciju atbalsts ļauj deklarēt metodes bloka darbības jomā. Lai gan tas, ka tas bija iespējams, izmantojot Func un Action veidus ar anonīmām metodēm C # valodas iepriekšējās versijās, bija maz izaicinājumu. Viņi neatbalstīja vispārīgos, parametrus un atsauces un izejas parametrus.

Labāks atbalsts Tuples

Tuple ir pagaidu vērtību grupa. Tas ir līdzīgs POCO klasei, bet tas, kas tiek izveidots lidojot. Galvenā Tuple izmantošanas priekšrocība ir metode, kas ļauj atgriezt vairākas vērtības. Varat izmantot virkni, lai attēlotu neviendabīgu datu kopu un nodrošinātu vienkāršu veidu, kā piekļūt šiem datiem. Pīles nav nekas jauns, un tās pastāv jau labu laiku. Jums ir atbalsts kopām F # un Python programmēšanas valodās. Varat izmantot dubultu priekšrocības, lai saglabātu sakārtotu, galīgu nemainīgas nemainīgas, galīgas, viendabīgu vai neviendabīgu fiksētu izmēru datu secības secību.

Tagad jums ir atbalsts arī Tuple literāļiem un Tuple dekonstrukcijai. C # 7 kopā tiek uzskatīts par vērtības tipu. Tādējādi tas ir maināms tips un daudz efektīvāks, ciktāl tas attiecas uz veiktspēju.

Nenulējami atsauces tipi

Pirmoreiz C # 2.0 tika ieviesti nenovēršami vērtību tipi. Nenulējamais atsauces tips ir tieši pretējs šai funkcijai. Būtībā nenoliedzams atsauces tips tiek izmantots, lai apzīmētu atsauces tipu, kas garantēti nav nulle. Lūk, kā C # 7 tiek deklarēts nenoliedzams atsauces tips:

aukla! str; // Šis nav atsaucams atsauces tips

Labāks atbalsts nemainīgajiem objektiem

Nemaināms objekts ir tāds, kura stāvokli pēc izveides vairs nevar mainīt. Tas padara nemaināmu objektu pavedienu drošu. Pieņemsim, ka izveidojat klasi, kurā ir rekvizīts, kuram ir rekurss, bet nav iestatītāja. Jā, acīmredzot, šķiet, ka klases eksemplārs ir nemainīgs. Tomēr vēlāk, ja kāds pievieno seteri par to pašu īpašumu, nemainīgums tiek zaudēts, vai ne?

Šeit palīdz tieši labāks atbalsts nemainīgajiem tipiem. Izmantojot C # 7, varat izveidot jaunu gadījumu, pamatojoties uz citu gadījumu. Lūk, kā to var panākt.

var firstObject = jauns darbinieks (101);

var secondObject = firstObject ar {EmployeeId = 102};

Ierakstu veidi

Ierakstu veidi ļauj jums izveidot veidu, izmantojot tikai rekvizītus. Būtībā ieraksta tips ir datu tips, kas sastāv tikai no īpašībām. Šis koda fragments parāda, kā var deklarēt ieraksta tipu.

klases taisnstūris (int augstums, int platums);

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