C # je večnamenski in robusten programski jezik, ki ga je Microsoft Corporation leta 2000 razvila kot smrtonosnega konkurenta Javi. Je najbolj priljubljen in prevladujoč programski jezik tako pri spletnem razvoju kot pri razvoju namiznih aplikacij.
V tej vadnici za C # bomo spoznali naslednje koncepte.
- Osnove C #
- Objektno usmerjeno programiranje
- Napredni koncepti C #
- Vprašanja za intervju na podlagi C #
Osnove C #
- Uvod v programski jezik C #
- Značilnosti programskega jezika C #
- Namestitev
- Struktura programa C #
- Podatkovni tipi
- Spremenljivke
- Operaterji
- Zanke
- Pogojno
- Strune
- Polja
- Zbirke
- Struktura
- Funkcije
Uvod v programski jezik C #
V zgodnjih devetdesetih letih je bila Java vodilni programski jezik za spletni razvoj, razvoj namiznih aplikacij in številna druga področja. Microsoft je želel predstaviti konkurenta s številnimi naprednimi funkcijami, ki lahko Javo pustijo daleč zadaj.
Bilo je leta 2000, Anders Hejlsberg in njegova Microsoftova ekipa prišli na idejo o C #, imenovanem C-Sharp. To pobudo je odobrila Mednarodna organizacija za standarde (VELIKO) in Evropsko združenje proizvajalcev računalnikov (ECMA). in končno, C # vstopi v svet razvoja programske opreme.
Značilnosti programskega jezika C #
- Objektno usmerjen programski jezik
Objektno usmerjeno programiranje je tisto, zaradi česar je C # oster, da je najbolj prijazen programerjem ter enostaven za razvoj in vzdrževanje programskega jezika.
- Type-Safe jezik
Pomen Type-Safe je, da bo prevajalnik dobil dostop samo do pomnilniške lokacije, ki ima dovoljenje za izvajanje. Ta funkcija na eksponentni ravni izboljša varnost kode.
- Interoperabilnost
Funkcija interoperabilnosti omogoča, da je C # dovolj sposoben narediti vse, kar je domače v C ++, na učinkovitejši način, ki lahko prekaša sam C ++.
- Bogata knjižnica
C # omogoča dostop do številnih vgrajenih knjižnic, ki zagotavljajo vnaprej programirane funkcije za zmanjšanje časa, porabljenega v razvojnem procesu.
- Prilagodljivo in posodobljivo
C # je bil zasnovan tako, da je boljši od ostalih programskih jezikov. Zato je vedno odprt za posodobitve in je s svojimi funkcijami zelo prilagodljiv.
- Komponentno usmerjeno
Razvijalci v Microsoftu so za razvoj C # uporabili pristop, ki temelji na komponentah. To je najbolj prevladujoča razvojna metodologija, s katero je C # zelo razširljiv in posodobljen.
- Strukturirani jezik
V življenjskem ciklu razvoja programske opreme je bolj zaželen pristop strukturiranega programiranja, saj je v primerjavi s postopkom usmerjenim programskim pristopom enostavno razviti in prevesti programsko opremo.
- Hitro
Programiranje C # je hitreje pri prevajanju in izvajanju v primerjavi s C ++ in drugimi programskimi jeziki.
Namestitev
Dokazano je, da Microsoft Visual Studio je najboljši v razredu urejevalnik za programiranje C #. Za izvajanje naših programov C # bomo namestili in nastavili Microsoft Visual Studio po naslednjih korakih:
Korak 1 : Prenesite Microsoft Visual Studio
Google za najnovejša različica Visual Studio in naložite namestite datoteko v lokalni sistem in nato teči namestitveno datoteko kot an skrbnik.
2. korak: Izberite .NET Desktop Development Package
Ko zaženete namestitveni program, bo urejevalnik Visual Studio uspešno prenesen v vaš lokalni sistem. Kasneje se bo na zaslonu namizja prikazalo pogovorno okno, ki bo sovražnika vprašalo določen paket kar potrebujete v svojem sistemu. Tukaj morate izbrati .NET namizni razvoj paket.
3. korak: nastavite okolje C #
Ko so vaši paketi za .NET razvoj se na zaslonu prikaže še eno pogovorno okno, ki vas zanima, katero razvojno okolje iščete. Tukaj morate izberite okolje za C #.
4. korak: ustvarite svoj prvi projekt
Ko je okolje nastavljeno, ste pripravljeni. Zaženite Visual Studio in izberite ustvari nov projekt v prikazanem pogovornem oknu.
Preusmerjeni boste na naslednje pogovorno okno in tam boste morali izbrati knjižnico predavanj kot .NET Standard kot je prikazano spodaj.
V naslednjem pogovornem oknu boste pozvani Konfigurirajte svoj projekt . Konfigurirajte ga in zdaj ste v urejevalniku. Napišite svoj prvi program in teči to. Izhod bo uspešno prikazan na Ukazni poziv.
z uporabo sistemskega razreda Edureka {static void Main (string [] args) {Console.WriteLine ('Welcome to Edureka !, Happy Learning ..!'}}}
// izhod:
Izvedimo svoj prvi program C #.
Struktura programa C #
Zdaj, ko smo izvedli svoj prvi program C #, podrobneje razumemo njegovo strukturo. Preprost program C # ima naslednje dele.
z uporabo sistemskega imenskega prostora ConsoleApplication1 {javni razred Edureka {javna statična praznina Main (string [] args) {Console.WriteLine ('Dobrodošli v Edureki !, Srečno učenje ..!'}}}}
// izhod:
Dobrodošli v Edureki !, srečno učenje ..!
- razred: razred lahko na splošno definiramo kot a ključna beseda ki se uporablja za definiranje razreda v programu C #.
- Edureka: To je ime Razred. Predavanje se pogosto obravnava kot načrt, ki shranjuje člane in metode, povezane z razredom.
- Glavni: V bistvu je primarna metoda celotnega programa C # deluje kot prehod za nadzor, ki vstopi v program. Izvede se, preden se izvede katera koli druga metoda programa.
- prazno: Ta segment kode je določen za vrsta vrnitve metode. To je lahko kateri koli podatkovni tip, ki ni void. Void pomeni, da metoda nima nobenih podatkov, ki bi se z nje vrnili.
- statično: To je ključna beseda ki pravi, da so prijavljeni člani podatkov statični in je namenjenim pomnilnikom dodeljen prijavljenim članom.
- Niz [] argumenti: Podoben je argumentom ukazne vrstice, ki jih uporabljamo v našem programu. Medtem ko izvajamo svoj program, v bistvu nekaj opravimo argumenti, ki jih bo program sprejel zaradi te izjave.
- System.Console.WriteLine (“Dobrodošli v Edureki !, srečno učenje ..!”) Tukaj, Sistem ali je imenski prostor. Konzolaje, da je začrtana kategorijav sistemskem imenskem prostoru. The WriteLine () je tostatičnatehnikokonzolekategorija, ki je zaposlena za zapisovanjebesedilo na konzoli.
Zdaj pa se naučimo vrste podatkov, ki so na voljo v jeziku C #.
Podatkovni tipi
Tipi podatkov v jeziku C # so razdeljeni v tri kategorije, ki so opisane spodaj.
Vrednosti podatkovnih tipov
The Vrednosti podatkovnih tipov se nahajajo v System.ValueType Knjižnica in so vedno pripravljene na neposreden dostop, spremenljivke pa je mogoče neposredno dodeliti določeni vrednosti. Vrste podatkov vrednosti so nadalje razvrščene v dve vrsti, kot je prikazano spodaj:
- Vnaprej določene vrste podatkov
- Uporabniško določeni tipi podatkov
Vnaprej določene vrste podatkov: To so tiste, ki jih običajno uporabljamo pri vsakodnevnem programiranju. Te tipe podatkov vnaprej določijo razvijalci jezikov in so pripravljeni za uporabo za programerje.
Primer:
int, float, char, short double itd
Uporabniško določeni tipi podatkov: V nekaterih primerih bomo morda morali shraniti različne vrednosti iz podatkovnih tipov v eno samo spremenljivko. V teh primerih je Vnaprej določene vrste podatkov niso dovolj. Uporabnik definiran Podatkovni tipi so kot prilagodljivi podatkovni tipi za uporabnika.
Primer: Struktura, Enum
Tip podatkov | Obseg dodeljenega pomnilnika | Velikost pomnilnika |
podpisan znak | -128 do 127 | 1 bajt |
nepodpisani znak | Od 0 do 127 | 1 bajt |
char | -128 do 127 | 1 bajt |
podpisano kratko | -32.768 do 32.767 | 2 bajta |
nepodpisana kratka | 0 do 65.535 | 2 bajta |
kratek | -32.768 do 32.767 | 2 bajta |
podpisan medn | -2,147,483,648 do -2,147,483,647 | 4 bajti |
nepodpisani int | 0 do 4.294.967.295 | 4 bajti |
int | -2,147,483,648 do -2,147,483,647 | 4 bajti |
podpisal dolgo | -9.223.372.036.854.775.808 do 9.223.372.036.854.775.807 | 8 bajtov |
nepodpisano dolgo | 0 do 18.446.744.073.709.551.615 | 8 bajtov |
dolga | -9.223.372.036.854.775.808 do 9.223.372.036.854.775.807 | 8 bajtov |
float | 1,5 * 10-45 - 3,4 * 1038, (7-mestna natančnost) | 4 bajti |
dvojno | 5,0 * 10-324 - 1,7 * 10308, (15-mestna natančnost) | 8 bajtov |
decimalno | -7,9 * 10-28 - 7,9 * 1028, (28-mestna natančnost) | 16 bajtov |
Tip podatkov kazalca
Tip kazalca je preprost podatkovni tip. Njegova funkcionalnost je popolnoma podobna kazalcem v C. Namenjeni so shranjevanju naslova drugega kazalca.
float * ptr
Referenčni tipi podatkov
Ime je samoumevno. The Referenčni tipi podatkov dejansko ne shranjujejo spremenljivk, temveč shranjujejo referenčno vrednost na to določeno spremenljivko. Z drugimi besedami, shranijo naslov dejanske spremenljivke.
Referenčne spremenljivke so razvrščene v tri različne vrste, kot je navedeno spodaj:
- Vrsta predmeta
Object Datatype je na voljo v System.Object Razred.Predmetvrsteje lahkododeljenavrednostidruge vrste,sklicvrste, vnaprej določeno, uporabniško določenovrste. Toda prejdodelitevvrednosti, zahteva tip pretvorba.
objekt abc abc = 50 // to se imenuje boks
- Dinamični tip
Spremenljivke Dynamic Type so namenjene shranjevanju skoraj vseh vrst vrednosti. Imenuje se kot Dynamic Type, ker preverjanje tipa vrednosti poteka v času izvajanja
dinamični x = 10
- Vrsta niza
Vrsta niza je na voljo v različici System.String razred. String Type je namenjen shranjevanju nizovnih literal. String Literals so shranjeni v dveh oblikahdve obliki
- citirano
- @ citirano.
Niz S = 'Edureka'
- The @ citirano string literal izgleda
@ 'Edureka'
Zdaj pa razumimo spremenljivke.
Spremenljivke
Spremenljivke so imena, dodeljena pomnilniški lokaciji, ki shranjujejo določene podatke, ki jih je dal uporabnik, in do teh podatkov je enostavno dostopati z uporabo imena spremenljivke. V C # je na voljo pet vrst spremenljivk
Tip | Primer |
Nič | Nični podatki |
Logično | Resnično in neresnično |
Celo število | Int, Char, Byte, Short, Long |
Float | Float in Double |
Decimalno | Decimalno |
Primer:
int a, b dvojno x float p char abc
Pravila, ki jih je treba upoštevati pri razglasitvi spremenljivk v jeziku C #
- Spremenljivka lahko vključuje abecede, števke in podčrtaje.
- Ime spremenljivke se lahko začne samo s črko ali podčrtajem.
- Spremenljivke se ne morejo začeti s številko ali posebnim znakom.
- Prazni presledki med imenom spremenljivke niso dovoljeni.
- Rezerviranih ključnih besed ni dovoljeno uporabljati kot imena spremenljivk.
Operaterji
Operater je mogoče opredeliti kot poseben simbol, ki razlaga, da računalnik izvaja določeno matematično logično operacijo na naboru spremenljivk. C # vključuje različne operaterje, ki so navedeni spodaj.
- Aritmetični operaterji
- Relacijski operaterji
- Logični operaterji
- Bitni operaterji
- Operatorji dodelitve
Aritmetični operaterji
Operater | Primer | Opis |
+ | A + B | Doda dva operanda |
- | A - B | Substrakti dva operanda |
* | A * B | Množi dva operanda |
/ | A / B | Razdeli dva operanda |
% | A% B | Preostanek dveh operand |
++ | A ++ | Povečanje operacije |
- | TO- | Operacija zmanjšanja |
Relacijski operaterji
Operater | Primer | Opis |
== | A == B | Res je, če sta oba operanda enaka, Else False |
! = | A! = B | Res je, če oba operanda nista enaka, Else False |
> | A> B | Res je, če je A večji, sicer napačen |
< | TO | Res je, če je B večji, sicer napačen |
> = | A> = B | Res je, če je A večji ali enak, sicer napačno |
<= | TO<= B | Res je, id B je bolj enak, sicer lažen |
Logični operaterji
Operater | Primer | Opis |
&& | A && B | Res je, če sta oba operanda resnična, Else False |
|| | A || B | Res je, če je eden od operandov resničen, Else False |
! | A! B | Obnovi logično stanje operanda |
Bitni operaterji
TO | B | A & B | A | B | A ^ B |
eno | eno | eno | eno | 0 |
eno | 0 | 0 | eno | eno |
0 | eno | 0 | eno | eno |
0 | 0 | 0 | 0 | 0 |
Operater | Primer | Opis |
~ | (~ A) | Operater dopolnjevanja Binary One je unary in ima učinek 'obračanja' bitov. |
<< | TO<<2 | Binarni levi premik. Vrednost levega operanda se premakne levo za število bitov, določeno z desnim operandom. |
>> | A >> 2 | Binarni operater desnega premika. Vrednost levega operanda se premakne desno za število bitov, ki ga določi desni operand. |
Operatorji dodelitve
Operater | Primer | Opis |
= | A = B + C | A = B + C, B + C je dodeljen A |
+ = | A + = B | A = A + B, A + B je dodeljen A |
- = | A - = B | A = A-B, A-B je dodeljen A |
* = | A - = B | A = A * B, A * B je dodeljen A |
/ = | A / = B | A = A / B, A / B je dodeljen A |
% = | A% = B | A = A% B, A% B je dodeljen A |
<<= | TO<<= 2 | Levi menjalnik in operater dodelitve |
>> = | A >> = 2 | Desni premik in operater dodelitve |
& = | A & = 2 | Bit-ov in operater dodelitve |
^ = | A ^ = 2 | Bitno ekskluzivni in operater dodelitve |
| = | A! = 2 | Bitno vključujoč in operater dodelitve |
Zanke
TO zanko Stavek se uporablja za večkratno izvajanje bloka stavkov, dokler ni izpolnjen določen pogoj. Jezik C # je sestavljen iz naslednjih izjav zanke.
- Za zanko
- Medtem ko Loop
- Ali medtem ko zanko
Za zanko
The za zanko se uporablja za večkratno izvajanje določenega segmenta kode, dokler ni izpolnjen dani pogoj.
Sintaksa
za (prirast / zmanjšanje pogoja inicializacije) {// segment kode}
Diagram poteka:
Primer:
z uporabo sistemskega javnega razreda ForExample {public static void Main (string [] args) {for (int i = 1 i<= 5 i++) { Console.WriteLine(i) } } }
// izhod:
eno
2.
3.
4.
5.
Medtem ko Loop
The Medtem ko zanka se uporablja za izvajanje kodnega segmenta večkrat, dokler ni izpolnjen določen pogoj.
Sintaksa
while (stanje) {// koda, ki jo je treba izvesti}
Diagram poteka:
Primer:
z uporabo sistemskih imenskih zank {class Program {static void Main (string [] args) {int x = 5 while (x<= 10) { Console.WriteLine('The value of a: {0}', x) x++ } Console.ReadLine() } } }
// izhod:
Vrednost a: 5
Vrednost a: 6
Vrednost a: 7
Vrednost a: 8
Vrednost a: 9
Vrednost a: 10
Ali medtem ko zanko
Zanka do while je popolnoma podobna zanki While Loop, vendar je edina razlika v tem, da je pogoj postavljen na konec zanke. Zato se zanka izvede vsaj enkrat.
Sintaksa
do {// koda, ki jo je treba izvesti} while (stanje)
Diagram poteka:
Primer:
z uporabo sistemskega imenskega prostora Edureka {class DoWhileLoop {public static void Main (string [] args) {int i = 1, n = 5, product do {product = n * i Console.WriteLine ('{0} * {1} = { 2} ', n, i, izdelek) i ++} medtem ko (i<= 10) } } }
// izhod:
5 * 1 = 5
5 * 2 = 10
5 * 3 = 15
5 * 4 = 20
5 * 5 = 25
5 * 6 = 30
5 * 7 = 35
5 * 8 = 40
5 * 9 = 45
5 * 10 = 50
Pogojno
Pogojni stavki se uporabljajo za izvedbo izjavo ali skupina izjave na podlagi nekega pogoja. Če je stanje potem je res Stavki C # se izvedejo drugače naslednji izjavo bo izveden.
Različne vrste pogojnih izjav v jeziku C ++ so naslednje:
- Če izjava
- Izjava If-Else
- Vgnezden stavek If-else
- If-Else Če lestev
- Izjava o preklopu
Če izjava
Samski če stavek v jeziku C # se uporablja za izvajanje kode, če je pogoj resničen. Imenuje se tudi enosmerna izbirna izjava.
Sintaksa
if (boolean-expression) {// stavki se izvajajo, če je boolean-expression true}
Diagram poteka:
Primer:
z uporabo sistemskega imenskega prostora Pogojno {class IfStatement {public static void Main (string [] args) {int number = 2 if (število<5) { Console.WriteLine('{0} is less than 5', number) } Console.WriteLine('This statement is always executed.') } } }
// izhod:
2 je manj kot 5
Ta izjava se vedno izvrši.
Izjava If-Else
The če potem stavek v jeziku C se uporablja za izvajanje kode, če je pogoj resničen ali neresničen. Imenuje se tudi dvosmerna izbirna izjava.
Sintaksa
if (boolean-expression) {// stavki izvršeni, če je boolean-izraz true} else {// stavki izvršeni, če je boolean-izraz false}
Diagram poteka:
Primer:
z uporabo sistemskega imenskega prostora Pogojno {class IfElseStatement {public static void Main (string [] args) {int number = 12 if (number<5) { Console.WriteLine('{0} is less than 5', number) } else { Console.WriteLine('{0} is greater than or equal to 5', number) } Console.WriteLine('This statement is always executed.') } } }
// izhod:
12 je večje ali enako 5
Ta izjava se vedno izvrši.
Vgnezden stavek If-else
Vgnezdeno če potem Stavek se uporablja, kadar program zahteva več kot en testni izraz. Imenuje se tudi večstranska izbirna izjava. Ko je v odločbi vključena vrsta odločitev, jo uporabimo če potem stavek v ugnezdeni obliki.
Sintaksa
if (boolean-expression) {if (ugnezdeni-izraz-1) {// koda se izvede} else {// koda se izvrši}} else {if (ugnezdeni-izraz-2) {// koda se izvrši } else {// koda za izvedbo}}
Diagram poteka:
Primer:
z uporabo sistemskega imenskega prostora Pogojno {class Nested {public static void Main (string [] args) {int first = 7, second = -23, third = 13 if (first & gt second) {if (first// izhod:
13 je največji
Lestvica sicer
The če-drugače-če Stavek se uporablja za izvajanje ene kode iz več pogojev. Imenuje se tudi izjava o odločitvi za več poti. To je veriga stavkov if..else, v katerih je vsak stavek if povezan z else if stavek in last sta izjava else.
Sintaksa
if (condition1) {// koda, ki jo je treba izvesti, če je condition1 resnična} else if (condition2) {// koda, ki jo je treba izvesti, če je condition2 resnična} else if (condition3) {// koda, ki se izvede, če je condition3 true} ... else {// koda, ki se izvede, če so vsi pogoji napačni}Diagram poteka:
Primer:
z uporabo sistemskega razreda Edureka {public static void Main (String [] args) {int i = 20 if (i == 10) Console.WriteLine ('i is 10') else if (i == 15) Console.WriteLine (' i je 15 ') else if (i == 20) Console.WriteLine (' i is 20 ') else Console.WriteLine (' i ni prisoten ')}}// izhod:
i je 20
Izjava o preklopu
Preklopi izjava deluje kot nadomestek dolge lestve, če ne, če se uporablja za preizkušanje seznama primerov. Stavek stikala vsebuje eno ali več nalepk z velikimi črkami, ki so preizkušene glede na izraz stikala. Ko se izraz ujema s primerom, se izvršijo povezani stavki s tem primerom.
Sintaksa
stikalo (spremenljivka / izraz) {case value1: // Stavki se izvršijo, če izraz (ali spremenljivka) = value1 break primer value2: // Stavki se izvršijo, če izraz (ali spremenljivka) = value1 break ... ... ... .. ... ... ... privzeto: // Izvedbe, če se noben primer ne ujema}Diagram poteka:
Primer:
z uporabo sistemskega imenskega prostora Pogojno {class SwitchCase {public static void Main (string [] args) {char ch Console.WriteLine ('Enter abeceda') ch = stikalo Convert.ToChar (Console.ReadLine ()) (Char.ToLower (ch )) {case 'a': Console.WriteLine ('Vowel') break case 'e': Console.WriteLine ('Vowel') case case 'i': Console.WriteLine ('Vowel') break case 'o': Console.WriteLine ('Vowel') prekinitev velikih črk 'u': Console.WriteLine ('Vowel') prekinitev privzeto: Console.WriteLine ('Ni samoglasnik') break}}}}// izhod:
Vnesite abecedo
je
Samoglasnik
Strune
Vrvica Podatkovni tip je član System.String Razred. Sposoben je shraniti vrsto znakovnih podatkov. Na Stingsu lahko izvajamo različne operacije, kot sozdruževanje, primerjava, pridobivanje podnizov, iskanje, obrezovanje, zamenjava in še veliko več.
Analogija String in string
V C # Vrvica in vrvica so enakovredni. Beseda niz je ključna beseda in deluje kot System.String razred. Za razglasitev nizov lahko uporabimo katero koli različico.
Sintaksa:
string s1 = 'Edureka' // ustvarjanje niza z uporabo ključne besede string String s2 = 'Happy Learning' // ustvarjanje niza z uporabo razreda StringPrimer:
z uporabo javnega razreda sistema StringExample {public static void Main (string [] args) {string s1 = 'Edureka' char [] ch = {'C', 's', 'h', 'a', 'r', ' p ',' ',' T ',' u ',' t ',' o ',' r ',' i ',' a ',' l '} niz s2 = nov niz (ch) Console.WriteLine ( s1) Console.WriteLine (s2)}}// izhod:
Edureka
Vadnica za Csharp
String metode v C #
Metoda Opis Kloniraj () Uporablja se za vrnitev sklica na ta primerek Stringa. Primerjaj (niz, niz) Uporablja se za primerjavo dveh določenih nizov. Concat (niz, niz) Združite dva določena primera niza. Vsebuje (niz) Vrne vrednost, ki označuje določen podniz Kopiraj (niz) Uporablja se za ustvarjanje novega primerka niza z enako vrednostjo CopyTo (Int, Char [], Int, Int) Kopira znake z določenega položaja Enako (niz, niz) Določa, da imata dva predmeta String enako vrednost. Oblika (niz, predmet) Zamenjajte enega ali več elementov formata v določenem nizu IndexOf (String) Poroča o indeksu, ki temelji na ničli prvega pojavljanja Vstavi (Int32, niz) Vrne nov niz, v katerem je niz vstavljen v indeks. IsInterned (niz) Označuje, da je ta niz v obliki normalizacije Unicode C. IsNullOrEmpty (niz) Označuje, da je navedeni niz ničen ali prazen niz. IsNullOrWhiteSpace (niz) Uporablja se za označevanje, ali je določen niz ničen, prazen, Pridružite se (String, String []) Uporablja se za združevanje vseh elementov nizov nizov LastIndexOf (Char) Poroča o položaju indeksa, ki temelji na nič, zadnjega znaka LastIndexOfAny (Char []) Poroča o položaju indeksa, ki temelji na nič, zadnjega znaka Odstrani (Int32) Vrne nov niz, v katerem so vsi znaki Zamenjaj (niz, niz) Vrne nov niz, v katerem se pojavijo vsi nizi Split (Char []) Uporablja se za razdelitev niza na podnize Začne se z (niz) Uporablja se za preverjanje, ali je začetek tega niza Podniz (Int32) Uporablja se za pridobivanje podniza iz tega primerka. ToCharArray () Kopira znake v tem primeru v matriko Unicode. ToString () Uporablja se za vrnitev primerka String. Obreži () Obreže niz
PoljaPodobno kot drugi programski jeziki ima tudi C # polja. Polja so preproste podatkovne strukture, ki so zasnovane za shranjevanje istega podatkovnega tipa elementov na sosednjem pomnilniškem mestu.
C # podpira naslednje vrste matrike.
- Enodimenzionalna matrika
- Večdimenzionalno polje
- Nazobčan niz
Enodimenzionalna matrika
Enodimenzionalno polje shrani elemente v obliki ene same vrstice.
Sintaksa
int [] arr = novo int [5] // ustvarjanje matrikePrimer:
z uporabo javnega razreda System ArrayExample {javna statična praznina Main (string [] args) {int [] arr = new int [5] arr [0] = 10 arr [1] = 20 arr [2] = 30 arr [3] = 40 arr [4] = 50 for (int i = 0 i// izhod:
10.
dvajset
30.
40
petdeset
Večdimenzionalno polje
Večdimenzionalno polje shranjuje elemente v obliki več dimenzij, kot so matrika in kocka itd.
Sintaksa
int val = a [2,3]Primer:
z uporabo sistemskega imenskega prostora ArrayApplication {class MyArray {static void Main (string [] args) {int [,] a = new int [5, 2] {{0, 0}, {1, 2}, {2, 4}, {3, 6}, {4, 8}} int i, j za (i = 0 i<5 i++) { for (j = 0 j < 2 j++) { Console.WriteLine('a[{0},{1}] = {2}', i, j, a[i, j]) } } Console.ReadKey() } } }// izhod:
a [0,0] = 0
a [0,1] = 0
a [1,0] = 1
a [1,1] = 2
a [2,0] = 2
a [2,1] = 4
a [3,0] = 3
a [3,1] = 6
a [4,0] = 4
a [4,1] = 8
Nazobčan niz
Jagged Array je preprosto niz nizov.
Primer:
z uporabo sistemskega imenskega prostora ArrayApplication {class MyArray {static void Main (string [] args) {int [] [] a = new int [] [] {new int [] {0,0}, novo int [] {1,2 }, nov int [] {2,4}, nov int [] {3, 6}, nov int [] {4, 8}} int i, j za (i = 0 i<5 i++) { for (j = 0 j < 2 j++) { Console.WriteLine('a[{0}][{1}] = {2}', i, j, a[i][j]) } } Console.ReadKey() } } }// izhod:
a [0] [0] = 0
a [0] [1] = 0
a [1] [0] = 1
a [1] [1] = 2
a [2] [0] = 2
a [2] [1] = 4
a [3] [0] = 3
a [3] [1] = 6
a [4] [0] = 4
a [4] [1] = 8
Zbirke
Zbirko lahko preprosto obravnavamo kot skupino predmetov, zbranih skupaj, da uporabimo nekatere funkcije na zbranih podatkih. Operacije, ki jih je mogoče izvesti na zbirki, so,
- shrani predmet
- posodobi objekt
- izbriši predmet
- pridobi predmet
- iskalni objekt in
- razvrsti predmet
Vrste zbirk
Obstajajo tri različne možnosti za delo z zbirkami. Spodaj so omenjeni trije imenski prostori:
- System.Collections.Generic razredih
- System.Collections razredih
- System.Collections.Concurrent razredih
Razred System.Collections.Generic ima naslednje vrste razredov:
- Seznam
- Stack
- Čakalna vrsta
- LinkedList
- HashSet
- SortedSet
- Slovar
- Sortirani slovar
- SortedList
The System.Collections razredi se štejejo za starejše razrede. vključujejo naslednje razrede.
- ArrayList
- Stack
- Čakalna vrsta
- Hashtable
The System.Collections.Concurrent razredihimenski prostor ponuja razrede za varne operacije. Zdaj več niti ne bo povzročalo težav pri dostopu do elementov zbirke. razredi, ki so na voljo v tem, so,
- BlockingCollection
- ConcurrentBag
- ConcurrentStack
- ConcurrentQueue
- ConcurrentDictionary
- Predelne stene
- Predelne stene
- OrderablePartitioner
Seznam
The seznam se šteje za podatkovno strukturo, ki je na voljo v System.Collection.Generics imenski prostor. Lahko shrani in pridobi elemente. Seznam lahko shrani podvojene elemente.
Primer:
z uporabo sistema z uporabo System.Collections.Generic javni razred Edureka {javna statična praznina Main (string [] args) {var names = new List () names.Add ('Sandhya') names.Add ('Arun') names.Add ( 'Prashanth') names.Add ('Kiran') foreach (ime imena v imenih) {Console.WriteLine (name)}}}// izhod:
Sandhya
Arun
Prashanth
Kiran
Hash Set
C # HashSetkategorija je pogosto navajenatrgovina,odvzetialibranje komponent. Toneshrani dvojniksestavnih delov.je pozvanouporabiti HashSet kategorijičeimašshranitiizključno prepoznaven sestavnih delov . to je najdeno v System.Collections.Generic namespace.
Primer:
z uporabo sistema z uporabo System.Collections.Generic javni razred Edureka {javna statična praznina Main (string [] args) {var names = new HashSet () names.Add ('Sunil') names.Add ('Amar') names.Add ( Imena 'Pujari'). Dodaj ('Imran') imena. Dodaj ('karan') foreach (ime imena v imenih) {Console.WriteLine (ime)}}}// izhod:
Sunil
Amar
Pujari
Imran
karan
Razvrščen niz
C # SortedSetrazredu pogosto navajenitrgovina, Odstrani ali preberite elementi . Vzdržuje naraščajoči vrstni red inneshrani dvojnikelementi.je hitroza uporabo SortedSetkategorijičeimašshraniti prepoznaven sestavnih delov in vzdržujejo naraščajoči vrstni red.to jenajdeno v System.Collections.Generic namespace.
Primer:
z uporabo sistema z uporabo System.Collections.Generic javni razred Edureka {javna statična praznina Main (string [] args) {var names = new SortedSet () names.Add ('Sanjay') names.Add ('Anuradha') names.Add ( Imena 'Praveen'). Dodajte imena ('Ravi'). Dodajte ('Kajol') foreach (ime imena v imenih) {Console.WriteLine (ime)}}}// izhod:
Anuradha
Kajol
Praveen
Ravi
Sanjay
Stack
The sklad je preprosta zbirka, ki sledi ROB ali prvi v zadnjem postopku izhoda med obdelavo elementov, shranjenih v njem.
Primer:
z uporabo sistema z uporabo System.Collections.Generic javni razred Edureka {javna statična praznina Main (string [] args) {Imena skladov = nova imena skladov (). Imena Push ('Chandan'). Imena Push ('Pooja'). Push ( Imena 'James'). Imena Push ('Rajesh'). Foreach (ime niza v imenih) {Console.WriteLine (name)} Console.WriteLine ('Peek element:' + names.Peek () ) Console.WriteLine ('Pop:' + names.Pop ()) Console.WriteLine ('After Pop, Peek element:' + names.Peek ())}}// izhod:
kumar
Rajesh
James
Pooja
Chandan
Peek element: kumar
Pop: kumar
Po Pop, Peek element: Rajesh
Čakalna vrsta
Čakalna vrsta je popolnoma podobna Stacku, vendar je edina razlika v tem, da Čakalna vrsta sledi FIFO ali načelo prvi vhod in izhod med obdelavo elementov, shranjenih v njem.
Primer:
z uporabo sistema z uporabo System.Collections.Generic javni razred Edureka {public static void Main (string [] args) {Imena čakalnih vrst = new Queue () names.Enqueue ('Srujan') imena. Imena 'John'). Imena v Enqueue ('Raju'). Foreque ('Hari') foreach (ime niza v imenih) {Console.WriteLine (name)} Console.WriteLine ('Peek element:' + names.Peek () ) Console.WriteLine ('Dequeue:' + names.Dequeue ()) Console.WriteLine ('After Dequeue, Peek element:' + names.Peek ())}}// izhod:
Srujan
Prajat
Janez
Hudo
Dan
Peek element: Srujan
Dequeue: Srujan
Po odpravi, Peek element: Prajat
Povezani seznam
Povezani seznam je zbirka dinamičnega pomnilnika. Elementi na seznamu Povezani se shranijo tako, da dostopajo do pomnilnika s kopice in shranjujejo elemente v neprekinjenem vrstnem redu s povezovanjem njihovih naslovov.
Primer:
z uporabo sistema z uporabo System.Collections.Generic javni razred Edureka {javna statična praznina Main (string [] args) {var names = new LinkedList () names.AddLast ('Rajat') names.AddLast ('Arun') names.AddLast ( 'Prakash') names.AddLast ('jay') names.AddFirst ('sai') foreach (ime imena v imenih) {Console.WriteLine (name)}}}// izhod:
sai
Vezane
Arun
Prakash
jay
Slovar
Slovar kategorijiuporabljaidejahashtable. Vrednote shranjuje naprejpredpostavkoključa. Vsebujeprepoznaventipkeizključno. Avtorpomočključa,bomo preprostoiskanje ozodvzeti elemente.to jenajdeno v System.Collections.Generic namespace.
Primer:
z uporabo sistema z uporabo System.Collections.Generic javni razred Edureka {public static void Main (string [] args) {Imena slovarja = nova imena slovarja (). Dodaj ('1', 'Shiva') imena.Dodaj ('2', Imena 'Prasad'). Dodajte imena ('3', 'Preetam'). Dodajte imena ('4', 'Roy'). Dodajte ('5', 'Akash') foreach (KeyValuePair kv v imenih) {Konzola. Vrstica za zapis (kv.Key + '' + kv.Value)}}}// izhod:
1 Šiva
2 Prasad
3 Preetam
4 Roy
5.
Akaš
Razvrščeni slovar
The Sortirani slovar kategorijiuporabljaoblikovanjehashtable. Vrednote shranjuje naprejIdejaključa. Vsebujeprepoznaventipke in vzdržuje naraščajoči vrstni redIdejaključa. Avtorpomočključa,bomo preprostoiskanje ozodvzeti elemente.to jenajdeno v System.Collections.Generic namespace.
Primer:
z uporabo sistema z uporabo System.Collections.Generic javni razred Edureka {javna statična praznina Main (string [] args) {SortedDictionary names = new SortedDictionary () names.Add ('1', 'Arun') names.Add ('4', Imena 'Vishal'). Dodajte imena ('5', 'Ramesh'). Dodajte imena ('3', 'Vidya'). Dodajte ('2', 'Pallavi') foreach (KeyValuePair kv v imena) {Konzola. Vrstica za zapis (kv.Key + '' + kv.Value)}}}// izhod:
1 Šiva
2 Prasad
3 Preetam
4 Roy
5.Akaš
Razvrščen seznam
The SortedList jeanniz parov ključ / vrednost. Vrednote shranjuje naprejpredpostavkoključa. Razvrščeni seznamkategorijivsebujeprepoznaventipke in vzdržuje naraščajoči vrstni redpredpostavkoključa. Avtorpomočključa,lahko preprostopoiščite ali odstraniteelementi.to jeNajdeno v System.Collections.Generic imenski prostor.
Primer:
z uporabo sistema z uporabo System.Collections.Generic javni razred Edureka {javna statična praznina Main (string [] args) {SortedDictionary names = new SortedDictionary () names.Add ('1', 'Arun') names.Add ('4', Imena 'Vishal'). Dodajte imena ('5', 'Ramesh'). Dodajte imena ('3', 'Vidya'). Dodajte ('2', 'Pallavi') foreach (KeyValuePair kv v imena) {Konzola. Vrstica za zapis (kv.Key + '' + kv.Value)}}}// izhod:
1 Arun
2 Pallavi
3 Vidya
4 Vishal
5.Ramesh
Struktura
Struktura je uporabniško določen podatkovni tip, zasnovan za shranjevanje več elementov različnega podatkovnega tipa. Struktura je navedena s ključno besedo strukt.
Primer:
z uporabo sistemske strukture Books {naslov javnega niza javni niz avtor avtor javnega niza tema public int book_id} javni razred Edureka {javna statična void Glavna (niz [] args) {Knjige Knjiga1 Knjige Book2 Book1.title = 'C # Programiranje' Book1.author = ' Ramchandra Kumar 'Book1.subject =' Vadnica za programiranje C ++ 'Book1.book_id = 95908978 Book2.title =' Telecom Billing 'Book2.author =' Karan 'Book2.subject =' Vadnica za obračunavanje telekomov 'Book2.book_id = 18674900 Console.WriteLine ( 'Naslov 1. knjige: {0}', Book1.title) Console.WriteLine ('Avtor 1. knjige: {0}', Book1.author) Console.WriteLine ('Tema 1. knjige: {0}', Book1.subject) Console.WriteLine ('Book 1 book_id: {0}', Book1.book_id) Console.WriteLine ('Book 2 title: {0}', Book2.title) Console.WriteLine ('Book 2 Author: {0}', Book2.author) Console.WriteLine ('Tema 2. knjige: {0}', Book2.subject) Console.WriteLine ('Book 2 book_id: {0}', Book2.book_id) Console.ReadKey ()}}// izhod:
Naslov 1. knjige: Programiranje na C #
1. knjiga Avtor: Ramchandra Kumar
Predmet knjige 1: Vadnica za programiranje C ++
1. knjiga book_id: 95908978
Naslov 2. knjige: Telekomunikacije
2. knjiga Avtor: Karan
Tema 2. knjige: Vadnica za obračunavanje telekomunikacij
2. knjiga book_id: 18674900
Funkcije
Funkcija je definirana kot blok kode glavne kode. Funkcija se uporablja za izvajanje stavkov, določenih v bloku kode. Funkcija je sestavljena iz naslednjih komponent.
- Ime funkcije: To je značilno ime, ki se uporablja za klicanje funkcije.
- Vrnitev: Določa podatkovni tip vrnjene vrednosti funkcije.
- Telo: Vsebuje izvršljive izjave.
- Specifikator dostopa: Določa dostopnost funkcije v aplikaciji.
- Parametri: To je seznam argumentov, ki jih lahko med klicem posredujemo funkciji.
Sintaksa
FunctionName () {// telo funkcije // return stavek}Primer:
z uporabo sistemskega imenskega prostora FunctionExample {class Edureka {javni niz Prikaži (sporočilo niza) {Console.WriteLine ('Inside Show Function') return message} static void Main (string [] args) {Edureka program = new Edureka () string message = program .Show ('Edureka') Console.WriteLine ('Welcome' + sporočilo)}}}// izhod:
Funkcija Inside Show
Dobrodošli v Edureki
Funkcije se lahko izvajajo na 3 različne načine:
- Pokliči po vrednosti
- Pokliči po referenci
- Out Parameter
Pokliči po vrednosti
V C #, vrednost -tip parametrovsota prehodreplikaprvotne vrednosti zanamestosklic. Tonespremenitiprva vrednost. Ansprememba ustvarjenav preteklostivrednost neStarostdoločeno vrednost.znotrajnaslednji primer,imamopodajovrednost skozipokličite.
Primer:
z uporabo sistemskega imenskega prostora CallByValue {class Edureka {public void Show (int val) {val * = val Console.WriteLine ('Vrednost znotraj funkcije show' + val)} static void Main (string [] args) {int val = 50 Program Edureka = nov program Edureka () Console.WriteLine ('Vrednost pred klicem funkcije' + val). Prikaži (val) Console.WriteLine ('Vrednost po klicu funkcije' + val)}}}// izhod:
Vrednost pred klicem funkcije 50
Vrednost znotraj funkcije show 2500
Vrednost po klicu funkcije 50
Pokliči po referenci
V metodi Pokliči z referencodo ref ključna beseda za posredovanje argumenta kot referenčnega tipa. Funkciji posreduje referenco argumentov in ne kopijo izvirne vrednosti. Spremembe posredovanih vrednosti so trajne in spremeniti prvotna vrednost spremenljivke.
Primer:
z uporabo sistemskega imenskega prostora CallByReference {class Edureka {public void Show (ref int val) {val * = val Console.WriteLine ('Vrednost znotraj funkcije show' + val)} static void Main (string [] args) {int val = 50 program Edureka = nov program Edureka () Console.WriteLine ('Vrednost pred klicem funkcije' + val). Pokaži (ref val) Console.WriteLine ('Vrednost po klicu funkcije' + val)}}}// izhod:
Vrednost pred klicem funkcije 50
Vrednost znotraj funkcije show 2500
Vrednost po klicu funkcije 2500
Out Parameter
Parameter izhodaprispeva ven ključna beseda za posredovanje argumentov kot zunanji tip. Podobno je referenčnemu tipu, le da ne zahteva, da se spremenljivka inicializira pred predajo. Moramo uporabiti ven ključna beseda za posredovanje argumenta kot zunanjega tipa. Uporabno je, če želimo, da funkcija vrne več vrednosti.
Primer:
z uporabo sistemskega imenskega prostora OutParameter {class Edureka {public void Show (out int val) {int square = 5 val = square val * = val} static void Main (string [] args) {int val = 50 Edureka program = new Edureka () Console.WriteLine ('Program pred oddajo spremenljivke' + val). Pokaži (ven val) Console.WriteLine ('Vrednost po prejemu spremenljivke' + val)}}}// izhod:
Vrednost pred podajanjem spremenljivke 50
Vrednost
po prejemu izhodne spremenljivke 25
Zdaj pa preidimo na objektno usmerjeno programiranje
Objektno usmerjeno programiranje
Predmetno usmerjeno programiranje Sistemje programska paradigma, ki temelji na konceptu predmetov ki vsebujejo podatkovni člani in metode povezane z njimi. Primarni namen objektno usmerjenega programiranja je povečati prožnost in vzdrževanje programov
Značilnosti objektno usmerjenega programiranja:
- Poudarek je bolj na podatkih kot na postopkih.
- Programi so razdeljeni na predmete, kar olajša delo z njimi.
- Podatkovne strukture so zasnovane tako, da označujejo predmete.
- Funkcije, ki delujejo napodatki predmeta so postavljeni skupaj v podatkovno strukturo.
- Podatki so skriti in zunanje funkcije do njih ne morejo dostopati brez dovoljenja.
- Komunikacija med predmeti lahko poteka s pomočjo funkcij.
- Dodajanje novih podatkov in funkcij je postalo enostavno.
- Pri oblikovanju programov sledi pristopu od spodaj navzgor.
Objektno usmerjene paradigme v jeziku C # so naslednje
- Naštevanje v C #
- Pristop usmerjenega programiranja
- Preobremenitev in preglasitev
- Imenski prostor
- Datotečne operacije
- Dogodki
- Generiki
- Delegati
- Odsev
Naštevanje v C #
Enum ali pa se imenuje tudi kot naštevanje v C # se uporablja za shranjevanje konstantnih vrednosti, ne da bi jih bilo treba spreminjati med celotnim izvajanjem programa C #. Tose uporablja za shranjevanje nabora imenovanih konstant, kot so sezona, dnevi, mesec, velikost itd
Primer:
z uporabo javnega razreda System EnumExample {javni enum teden {ponedeljek, torek, sreda, četrtek, petek, sobota, nedelja} javna statična void Main () {int x = (int) week.Monday int y = (int) week.Friday Console .WriteLine ('Ponedeljek = {0}', x) Console.WriteLine ('Petek = {0}', y)}}// izhod:
Ponedeljek = 0
Petek = 4
Pristop usmerjenega programiranja
Objektno usmerjen slog programiranja je mogoče doseči po spodnjih metodah.
Kapsulacija
Kapsulacija je metoda za kombiniranje metode skupaj s svojimi podatkovni člani.
Primer:
z uporabo sistemskega imenskega prostora Edureka {class Rectangle {public double length public double width public double GetArea () {return length * width} public void Display () {Console.WriteLine ('Length: {0}', length) Console.WriteLine (' Širina: {0} ', širina) Console.WriteLine (' Območje: {0} ', GetArea ())}} razred ExecuteRectangle {static void Main (string [] args) {Rectangle r = new Rectangle () r.length = 50 r.širina = 35 r.Display () Console.ReadLine ()}}}// izhod:
Dolžina: 50
Širina: 35
Površina: 1750
Abstrakcija
Abstrakcija je metoda za skrij zapleteni kodni del od uporabnika, tako da mu posreduje samo zahtevane informacije, ki jih potrebuje.
Primer:
kako ustvariti paket v javiz uporabo sistemskega javnega abstraktnega razreda Shape {public abstract void draw ()} javni razred Pravokotnik: Shape {public override void draw () {Console.WriteLine ('risanje pravokotnika ...')}} javni razred Circle: Shape {public override void draw () {Console.WriteLine ('risanje kroga ...')}} javni razred TestAbstract {public static void Main () {Shape ss = new Rectangle () s.draw () s = new Circle () s.draw ()}}// izhod:
risanje pravokotnika ...
risanje kroga ...
Vmesnik
The vmesnik je popolnoma podoben abstrakciji. Funkcionalnost vmesnika je skriti nepomembne podatke pred uporabnikom in mu zagotoviti edine pomembne podatke, ki jih potrebuje.
Primer:
z uporabo javnega vmesnika sistema Drawable {void draw ()} javni razred Pravokotnik: Drawable {public void draw () {Console.WriteLine ('risanje pravokotnika ...')}} javni razred Krog: Drawable {public void draw () {Console .WriteLine ('risanje kroga ...')}} javni razred TestInterface {javna statična praznina Main () {Drawable dd = nov pravokotnik () d.draw () d = nov krog () d.draw ()}}// izhod:
risanje pravokotnika ...
risanje kroga ...
Polimorfizem
Polimorfizemje kombinacija 'Poli' + 'Morfi' kar pomeni veliko oblik. To je grška beseda. To pomeni, da lahko kodni segment zavzame več oblik. Imamo dve vrsti polimorfizma.
- Prevedite polimorfizem časa
- Polimorfizem med izvajanjem
Primer:
z uporabo sistemskega javnega razreda Animal {public string color = 'white'} javni razred Dog: Animal {public string color = 'black'} javni razred TestSeated {public static void Main () {Animal d = new Dog () Console.WriteLine ( d.barva)}}// izhod:
belo
Dedovanje
Dedovanje je postopek, pri katerem en predmet samodejno pridobi vse lastnosti in vedenja nadrejenega predmeta. Atribute in vedenja, ki so definirana v drugem razredu, lahko znova uporabite, razširite ali spremenite. pokliče se razred, ki podeduje člane drugega razreda izpeljani razred in razred, katerega člani so podedovani, se imenuje osnova razred. Izpeljani razred je specializirani razred za osnovni razred.
Primer za enostopenjsko dedovanje
z uporabo sistemskega imenskega prostora RectangleApplication {razred Rectangle {zaščitena dvojna dolžina zaščitena dvojna širina public Rectangle (double l, double w) {length = l width = w} public double GetArea () {return length * width} public void Display () {Console. WriteLine ('Dolžina: {0}', dolžina) Console.WriteLine ('Širina: {0}', širina) Console.WriteLine ('Območje: {0}', GetArea ())}} razred Namizje: Pravokotnik {zasebno dvojna cena javna namizna (dvojna l, dvojna š): osnovna (l, š) {} javna dvojna GetCost () {dvojna cena = GetArea () * 70 povratnih stroškov} javna void Display () {base.Display () Console .WriteLine ('Cena: {0}', GetCost ())}} razred ExecuteRectangle {static void Main (string [] args) {Tabletop t = new Tabletop (4.5, 7.5) t.Display () Console.ReadLine () }}}// izhod:
Dolžina: 4.5
Širina: 7,5
Površina: 33,75
Cena: 2362,5
Primer večstopenjske dediščine
uporaba sistemskega imenskega prostora InheritanceApplication {class Shape {public void setWidth (int w) {width = w} public void setHeight (int h) {height = h} protected int width protected int height} javni vmesnik PaintCost {int getCost (int area)} class Rectangle: Shape, PaintCost {public int getArea () {return (širina * višina)} public int getCost (int area) {return area * 70}} class RectangleTester {static void Main (string [] args) {Rectangle Rect = new Rectangle () int area Rect.setWidth (5) Rect.setHeight (7) area = Rect.getArea () Console.WriteLine ('Skupna površina: {0}', Rect.getArea ()) Console.WriteLine ('Skupaj stroški barve: $ {0} ', Rect.getCost (area)) Console.ReadKey ()}}}// izhod:
Skupna površina: 35
Skupni stroški barve: 2450 USD
Preobremenitev
Preobremenitev je situacija, ko imamo dva ali člana, prijavljena z istim imenom. Preobremenitev je možna tudi, če prijavimo tudi dve ali več metod z istim imenom. Preverimo primere obeh.
Preobremenitev članov
Primer:
z uporabo javnega razreda sistema Edureka {javni statični int add (int a, int b) {return a + b} javni statični int add (int a, int b, int c) {return a + b + c}} javni razred TestMemberOverloading { javna statična void Main () {Console.WriteLine (Edureka.add (12, 23)) Console.WriteLine (Edureka.add (12, 23, 25))}}// izhod:
35
60
Preobremenitev metode
Primer:
z uporabo javnega razreda sistema Edureka {public static int add (int a, int b) {return a + b} public static float add (float a, float b) {return a + b}} javni razred TestMemberOverloading {public static void Main ( ) {Console.WriteLine (Edureka.add (12, 23)) Console.WriteLine (Edureka.add (12.4f, 21.3f))}}// izhod:
35
33,699997
Preglasitev
Preglasitev je situacija, ko podrejeni razred opredeli isto metodo, ki jo definira tudi starš. Razumimo to na majhnem primeru.
Primer:
z uporabo javnega razreda System Edureka {public virtual void eat () {Console.WriteLine ('Eating')}} public class Dog: Edureka {public override void eat () {Console.WriteLine ('Eating food')}} public class Overriding {public static void Main () {Dog d = new Dog () d.eat ()}}// izhod:
Uživanje hrane
Imenski prostor
The imenski prostor se v osnovi uporablja za obdelavo več razredov, ki so prisotni v programu. Imenski prostor je na voljo na različne načine.
- System.Console: Tukaj Sistem postane imenski prostor
- Za dostop do razreda imenskega prostora moramo uporabiti namespacename.classname.
- Lahko uporabimo uporabo tudi ključna beseda.
Primer:
uporaba sistema z uporabo First z uporabo drugega imenskega prostora First {javni razred Edureka {public void sayWelcome () {Console.WriteLine ('Welcome To Edureka')}}} imenski prostor Second {javni razred Happy_Learning {public void sayWishes () {Console.WriteLine (' Happy Learning ')}}} javni prostor imen razreda {public static void Main () {Edureka h1 = new Edureka () Happy_Learning w1 = new Happy_Learning () h1.sayWelcome () w1.sayWishes ()}}// izhod:
Dobrodošli v Edureki
Srečno učenje
Datotečne operacije
The datoteke na voljo v jeziku C #:
Delovanje Opis BinaryReader Bere primitivne podatke iz binarnega toka. BinaryWriter Zapiše primitivne podatke v binarni obliki. BufferedStream Začasna shramba za tok bajtov. Imenik Pomaga pri manipulaciji z imeniško strukturo. DirectoryInfo Uporablja se za izvajanje operacij nad imeniki. DriveInfo Zagotavlja informacije o pogonih. mapa Pomaga pri manipulaciji datotek. FileInfo Uporablja se za izvajanje datotek. FileStream Uporablja se za branje in pisanje na katero koli mesto v datoteki. MemoryStream Uporablja se za naključni dostop do pretočnih podatkov, shranjenih v pomnilniku. Pot Izvaja operacije s podatki o poti. StreamReader Uporablja se za branje znakov iz bajtnega toka. StreamWriter Uporablja se za zapisovanje znakov v tok. StringReader Uporablja se za branje iz medpomnilnika nizov. StringWriter Uporablja se za zapisovanje v medpomnilnik nizov. FileMode
The FileMode je števec, ki definira več načinov odpiranja datotek. Člani FileMode Enumerator so opisani na naslednji način:
- Dodaj: Odpre obstoječo datoteko in postavi kazalec na konec datoteke ali ustvari datoteko, če datoteka ne obstaja.
- Ustvari: Zasnovan je tako, da ustvari novo datoteko.
- CreateNew: Zasnovan je tako, da operacijskemu sistemu določi, da mora ustvariti novo datoteko.
- Odprto: Zasnovan je tako, da odpre obstoječo datoteko.
- OpenOrCreate: Zasnovan je tako, da določi operacijski sistem, da mora odpreti datoteko, če ta obstaja, sicer pa mora ustvariti novo datoteko.
- Skrajšaj: Skrajšanje odpre obstoječo datoteko in njeno velikost skrajša na nič bajtov.
FileAccess
FileAccess Enumerator se uporablja za dostop do določene datoteke. Ima naslednje člane.
- Preberite
- Napiši
- Brati, pisati
FileShare
The Datoteka Števec se uporablja za skupno rabo določene datoteke. Ima naslednje člane.
- Dedljivo: Inheritable omogoča, da datotečni ročaj posreduje dediščino podrejenim procesom.
- Brez: Nobena ne zavrne skupne rabe trenutne datoteke
- Preberite: Branje omogoča odpiranje datoteke za branje.
- Brati, pisati: ReadWrite omogoča odpiranje datoteke za branje in pisanje.
- Napišite: Pisanje omogoča odpiranje datoteke za pisanje.
Dogodki
Dogodek je splošno znan kot dejanje, ki ga ustvari uporabnik. To je lahko klik miške in celo en sam pritisk na tipkovnici. Podobno imajo programi C # tudi dogodke. Generator dogodka se imenuje založnik in prejemnik dogodka se imenuje naročnik.
Založnik
TO založnik vsebuje definicijo dogodka in delegat. The dogodek-delegat v tem objektu je definirana asociacija. A založnik class class prikliče dogodek in je o njem obveščen drugim objektom.
Naročnik
TO naročnik sprejme dogodek in navede vodnik dogodkov. The delegat v založniškem razredu prikliče metodo / dogodek vodnik naročniškega razreda.
Primer:
z uporabo sistemskega imenskega prostora Edureka {javni delegat string Del (string str) class EventBlock {event Del NewEvent public EventBlock () {this.NewEvent + = new Del (this.WelcomeUser)} javni niz WelcomeUser (niz uporabniškega imena) {return 'Dobrodošli v Edureki . '+ uporabniško ime} static void Main (string [] args) {EventBlock obj1 = new EventBlock () string result = obj1.NewEvent (' Happy Learning ') Console.WriteLine (rezultat)}}}// izhod:
Dobrodošli v Edureki. Srečno učenje
Generiki
Generiki je koncept oskrbe članov in metod predavanja z ogradami v Čas izvajanja. Generike lahko določimo z uporabo oklepaji. Oglejmo si naslednje primere.
Generiki v razredu
z uporabo sistemskega imenskega prostora Edureka {class GenericClass {public GenericClass (T msg) {Console.WriteLine (msg)}} class Program {static void Main (string [] args) {GenericClass gen = new GenericClass ('To sporočilo je iz generičnega razreda' ) GenericClass genI = new GenericClass (123) GenericClass getCh = new GenericClass ('E')}}}// izhod:
To sporočilo je iz generičnega razreda
123
JE
Generiki v metodi
z uporabo sistemskega imenskega prostora Edureka {class GenericClass {public void Show (T msg) {Console.WriteLine (msg)}} class Program {static void Main (string [] args) {GenericClass genC = new GenericClass () genC.Show ('This sporočilo je iz generične metode ') genC.Show (321) genC.Show (' H ')}}}// izhod:
To sporočilo prihaja iz generične metode
321
H
Delegati
The Delegat deluje kot sklic na metodo. V bistvu je enako kot kazalec funkcije v C in C ++, vendar veliko boljši in varnejši za tip. Delegat v statična metoda enkapsulira samo metodo. Medtem ko je delegat v primer metoda zajema tako metodo kot primerek. Najboljša uporaba delegata je uporaba kot dogodek.
Primer:
z uporabo sistemskega delegata int Kalkulator (int n) javni razred Edureka {static int number = 25 public static int add (int n) {number = number + n return number} public static int mul (int n) {number = number * n return number} public static int getNumber () {return number} public static void Main (string [] args) {Kalkulator c1 = nov kalkulator (dodaj) Kalkulator c2 = nov kalkulator (mul) c1 (20) Console.WriteLine ('Po kalkulatorju en delegat, nova številka je: '+ getNumber ()) c2 (3) Console.WriteLine (' Po delegatu dva kalkulatorja je nova številka: '+ getNumber ())}}// izhod:
Po enem pooblaščencu kalkulatorja je nova številka: 45
Po delegatu kalkulatorja 2 je nova številka: 135
Odsev
Reflection je potreben za pridobitev metapodatkov v času izvajanja. Referenca je na voljo v System.Reflection imenski prostor. Za izvajanje so potrebni naslednji razredi.
- Tip
- MemberInfo
- ConstructorInfo
- MethodInfo
- FieldInfo
- PropertyInfo
- TypeInfo
- EventInfo
- Modul
- Skupščina
- AssemblyName
- Kazalec
Tip razreda
Razred tipa C # predstavlja izjave o tipih za tipe razredov, tipe vmesnikov, vrste štetja, vrste matrike, vrste vrednosti
Vnesite Lastnosti
Spodaj je naveden seznam pomembnih lastnosti razredov Type.
Nepremičnina Opis Skupščina Pridobi sklop za to vrsto. AssemblyQualifiedName Pridobi kvalificirano ime za skupino za to vrsto. Lastnosti Pridobi atribute, povezane s tipom. BaseType Pridobi osnovni ali nadrejeni tip. Polno ime Pridobi popolnoma kvalificirano ime vrste. IsAbstraktno se uporablja za preverjanje, ali je vrsta Povzetek. IsArray se uporablja za preverjanje, ali je tip Array. IsClass se uporablja za preverjanje, ali je tip Class. IsEnum se uporablja za preverjanje, ali je vrsta Enum. IsInterface se uporablja za preverjanje, ali je vrsta vmesnik. IsNested se uporablja za preverjanje, ali je vrsta ugnezdena. IsPrimitive se uporablja za preverjanje, ali je tip primitiven. IsPointer se uporablja za preverjanje, ali je vrsta kazalec. IsNotPublic se uporablja za preverjanje, ali vrsta ni javna. IsPublic se uporablja za preverjanje, ali je vrsta javna. IsSeated se uporablja za preverjanje, ali je vrsta zapečatena. Je Serializable se uporablja za preverjanje, ali je tip serializiran. Vrsta člana se uporablja za preverjanje, ali je tip vrsta člana ugnezdenega tipa. Modul Pridobi modul tipa. Ime Pridobi ime vrste. Imenski prostor Pridobi imenski prostor vrste.
Nepremičnina Opis GetConstructors () Vrne vse javne konstruktorje za tip. GetConstructors (BindingFlags) Vrne vse konstruktorje za tip z navedenimi BindingFlags. GetFields () Vrne vsa javna polja za vrsto. GetFields (BindingFlags) Vrne vse javne konstruktorje za Type z navedenimi BindingFlags. GetMembers () Vrne vse javne člane za vrsto. GetMembers (BindingFlags) Vrne vse člane za vrsto z določenimi BindingFlags. GetMethods () Vrne vse javne metode za vrsto. GetMethods (BindingFlags) Vrne vse metode za vrsto z navedenimi BindingFlags. GetProperties () Vrne vse javne lastnosti za tip. GetProperties (BindingFlags) Vrne vse lastnosti tipa z navedenimi BindingFlags. GetType () Pridobi trenutni tip. GetType (niz) Pridobi vrsto za dano ime. Primeri refleksije:
Pridobite tip
Primer:
z uporabo javnega razreda System GetType {public static void Main () {int a = 10 Type type = a.GetType () Console.WriteLine (type)}}// izhod:
System.Int32
Pridobite skupščino
Primer:
z uporabo sistema z uporabo sistema System.Reflection javnega razreda GetAssembly {public static void Main () {Type t = typeof (System.String) Console.WriteLine (t.Assembly)}}// izhod:
System.Private.CoreLib, različica = 4.0.0.0, Kultura = nevtralna, PublicKeyToken = 7cec85d7bea7798e
Informacije o vrsti tiskanja
Primer:
z uporabo sistema z uporabo System.Reflection javnega razreda PrintType {javna statična void Main () {Type t = typeof (System.String) Console.WriteLine (t.FullName) Console.WriteLine (t.BaseType) Console.WriteLine (t.IsClass) Console.WriteLine (t.IsEnum) Console.WriteLine (t.IsInterface)}}// izhod:
Prav
Lažno
Lažno
Konstruktorji tiska
Primer:
z uporabo sistema z uporabo System.Reflection javnega razreda PrintConstructors {public static void Main () {Type t = typeof (System.String) Console.WriteLine ('Constructors of {0} type ...', t) ConstructorInfo [] ci = t .GetConstructors (BindingFlags.Public | BindingFlags.Instance) foreach (ConstructorInfo c in ci) {Console.WriteLine (c)}}}// izhod:
Konstruktorji tipa System.String ...
Void .ctor (Char [])
Void .ctor (Char [], Int32, Int32)
Void .ctor (Char *)
Void .ctor (Char *, Int32, Int32)
Void .ctor (SByte *)
Void .ctor (SByte *, Int32, Int32)
Void .ctor (SByte *, Int32, Int32, System.Text.Encoding)
Void .ctor (Char, Int32)
Void .ctor (System.ReadOnlySpan`1 [System.Char])
Metode tiskanja
Primer:
z uporabo sistema z uporabo System.Reflection javnega razreda PrintMethods {public static void Main () {Type t = typeof (System.String) Console.WriteLine ('Methods of {0} type ...', t) MethodInfo [] ci = t .GetMethods (BindingFlags.Public | BindingFlags.Instance) foreach (MethodInfo m in ci) {Console.WriteLine (m)}}}// izhod:
Metode vrste System.String ...
System.String Replace (System.String, System.String)
System.String [] Split (Char, System.StringSplitOptions)
System.String [] Split (Char, Int32, System.StringSplitOptions)
System.String [] Split (Char [])
System.String [] Split (Char [], Int32)
System.String [] Split (Char [], System.StringSplitOptions)
System.String [] Split (Char [], Int32, System.StringSplitOptions)
System.String [] Split (System.String, System.StringSplitOptions)
System.String [] Split (System.String, Int32, System.StringSplitOptions)
System.String [] Split (System.String [], System.StringSplitOptions)
System.String [] Split (System.String [], Int32, System.StringSplitOptions) ......
Polja za tiskanje
Primer:
z uporabo sistema z uporabo System.Reflection javnega razreda PrintFields {public static void Main () {Type t = typeof (System.String) Console.WriteLine ('Polja {0} type ...', t) FieldInfo [] ci = t .GetFields (BindingFlags.Public | BindingFlags.Static | BindingFlags.NonPublic) foreach (FieldInfo f in ci) {Console.WriteLine (f)}}}// izhod:
Polja tipa System.String ...
System.String Empty
Zdaj pa pojdimo na nekatere napredne koncepte programiranja za C #
Napredni koncepti C #
Anonimna funkcija
Pokliče se funkcija, ki nima določenega imena Anonimno Funkcije. V C # sta na voljo dve vrsti anonimnih funkcij
- Lambda izrazi
- Anonimne metode
Primer:
z uporabo sistemskega imenskega prostora LambdaExpressions {class Edureka {delegat int Square (int num) static void Main (string [] args) {Square GetSquare = x => x * x int j = GetSquare (25) Console.WriteLine ('Square:' + j)}}}// izhod:
Kvadrat: 625
Anonimne metode
The anonimna metoda ponuja enako funkcionalnost kot a lambda izraz, le da nam omogoča, da prezremo seznam parametrov.
Primer:
z uporabo sistemskega imenskega prostora AnonymousMethods {razred Program {javni delegat void AnonymousFun () static void Main (string [] args) {AnonymousFun fun = delegat () {Console.WriteLine ('To je anonimna funkcija')} fun ()}}}// izhod:
To je anonimna funkcija
Multi-Threading
Večnitnost je postopek, pri katerem se za različne naloge ustvari in dodeli več niti. to prihrani čas z izvajanjem več opravil hkrati. Razred večnitnosti je na voljo v različici System.Nitke imenski prostor.
System.Threading imenski prostor
The System.Nitke imenski prostor vsebuje razrede in vmesnike za lažjo večnitnost. Ponuja razrede za sinhronizacijo vira niti. Seznam najpogosteje uporabljenih razredov je spodaj:
- Navoj
- Mutex
- Časovnik
- Monitor
- Semafor
- ThreadLocal
- ThreadPool
- Hlapljivo
Postopek in nit
Proces je dejansko in aplikacijo in se šteje za a težka kategorija komponenta. Po drugi strani pa je nit ena sama modul celotne aplikacije. je lahka v primerjavi s postopkom
Življenjski cikel niti
Vsaka nit ima življenjski cikel. Življenjski cikel niti je definiran v razredu System.Threading.Thread. Sledijo faze v življenjskem ciklu katere koli niti.
- Neodkrito
- Teče (pripravljen za zagon)
- Tek
- Ne teče
- Mrtev
Razred Thread nudi naslednje lastnosti in metode, kot sledi.
Lastnosti niti
Nepremičnina Opis CurrentThread vrne primerek trenutno delujoče niti. IsAlive preveri, ali je trenutna nit živa ali ne. IsBackground Pridobivanje / nastavitev vrednosti trenutne niti je v ozadju ali ne. ManagedThreadId se uporablja za pridobitev enoličnega ID-ja za trenutno upravljano nit. Ime se uporablja za pridobitev ali nastavitev imena trenutne niti. Prednostna naloga se uporablja za pridobivanje ali nastavitev prioritete trenutne niti. ThreadState se uporablja za vrnitev vrednosti, ki predstavlja stanje niti. Metode niti
Metoda Opis Splav () se uporablja za zaključek niti. Poveča ThreadAbortException. Prekinitev () se uporablja za prekinitev niti, ki je v stanju WaitSleepJoin. Pridružite se () se uporablja za blokiranje vseh klicnih niti, dokler se ta nit ne konča. ResetAbort () se uporablja za preklic zahteve za prekinitev za trenutno nit. Nadaljuj() se uporablja za nadaljevanje viseče niti. Zastarelo je. Spanje (Int32) se uporablja za zaustavitev trenutne niti za določene milisekunde. Začni () spremeni trenutno stanje niti v Runnable. Začasno ustavi () začasno ustavi trenutno nit, če ni prekinjena. Zastarelo je. Donos () se uporablja za izvedbo trenutne niti v drugo nit. Primer glavne niti
z uporabo sistema z uporabo System.Threading javnega razreda Edureka {public static void Main (string [] args) {Thread t = Thread.CurrentThread t.Name = 'MainThread' Console.WriteLine (t.Name)}}// izhod:
MainThread
Ravnanje z izjemami
The izjema je napaka, ki jo program sproži med izvajanjem. Izvajanje izjeme izvajamo zato, da bi naš program izjemo brezplačno.
Izjema Opis System.DivideByZeroException Napaka, ustvarjena z delitvijo števila z ničlo.
System.NullReferenceException obravnava napako, ustvarjeno s sklicevanjem na ničelni objekt.
System.InvalidCastException obravnava napako, ustvarjeno z neveljavnim predvajanjem tipov
System.IO.IOException obravnava napake vhoda / izhoda. System.FieldAccessException Napaka, ustvarjena z neveljavnim zasebnim / zaščitenim dostopom. V C # za izvedbo uporabljamo 4 ključne besede obravnava izjem:
Primer:
- poskusite
- ulov
- končno in
- vrgel
z uporabo javnega razreda sistema EdurekExample {public static void Main (string [] args) {try {int a = 10 int b = 0 int x = a / b} catch (Izjema e) {Console.WriteLine (e)} Console.WriteLine ('To sporočilo je iz bloka catch')}}// izhod:
System.DivideByZeroException: poskus delitve z nič.
na ExExaEdurekample.Main (String [] args) v F: C # TutorialC # ProgramsConsoleApp1ConsoleApp1Program.cs: vrstica 10
To sporočilo je iz bloka catch
Primer prilagojene izjeme
z uporabo sistemskega javnega razreda InvalidAgeException: izjema {public InvalidAgeException (sporočilo niza): osnova (sporočilo) {}} javni razred Po meri {statična neveljavnost (int starost) {if (starost<18) { throw new InvalidAgeException('Sorry, Age is expected to be greater than 18') } } public static void Main(string[] args) { try { validate(12) } catch (InvalidAgeException e) { Console.WriteLine(e) } Console.WriteLine('Catch block is being executed now.') } }// izhod:
InvalidAgeException: Oprostite, starost naj bi bila večja od 18 let
na Customized.validate (starost Int32) v F: C # TutorialC # ProgramsConsoleApp1ConsoleApp1Program.cs: vrstica 18
na Customized.Main (String [] args) v F: C # TutorialC # ProgramsConsoleApp1ConsoleApp1Program.cs: vrstica 23
Blok ulova se zdaj izvaja.
Končno primer bloka
z uporabo javnega razreda SystemExecption {public static void Main (string [] args) {try {int a = 10 int b = 0 int x = a / b} catch (Exception e) {Console.WriteLine (e)} nazadnje {Console .WriteLine ('Končno je izveden blok')} Console.WriteLine ('Blok ulova je izveden')}}// izhod:
System.DivideByZeroException: poskus delitve z nič.
na FinalExecption.Main (String [] args) v F: C # TutorialC # ProgramsConsoleApp1ConsoleApp1Program.cs: vrstica 10
Končno se izvede blok
Blok ulova se izvede
Podpis sistemske izjeme
[SerializableAttribute] [ComVisibleAttribute (true)] javni razred SystemException: IzjemaKonstruktorji sistemskih izjem
Graditelj Opis SystemException () Uporablja se za inicializacijo novega primerka razreda SystemException. SystemException (SerializationInfo, StreamingContext)
Uporablja se za inicializacijo novega primerka razreda SystemException s serializiranimi podatki. SystemException (niz) Uporablja se za inicializiranje novega primerka razreda SystemException s podanim sporočilom o napaki. SystemException (niz, izjema) Uporablja se za inicializacijo novega primerka razreda SystemException s podanim sporočilom o napaki in sklicem na notranjo izjemo, ki je vzrok za to izjemo. Lastnosti sistemskih izjem
Nepremičnina Opis Podatki Uporablja se za pridobivanje zbirke parov ključ / vrednost, ki zagotavljajo dodatne uporabniško določene informacije o izjemi. HelpLink Uporablja se za pridobivanje ali nastavitev povezave do datoteke pomoči, povezane s to izjemo. HResult Uporablja se za pridobivanje ali nastavitev HRESULT, kodirane številčne vrednosti, ki je dodeljena določeni izjemi. InnerException Uporablja se za pridobitev primerka izjeme, ki je povzročil trenutno izjemo. Sporočilo Uporablja se za pridobivanje sporočila, ki opisuje trenutno izjemo. Vir Uporablja se za pridobitev ali nastavitev imena aplikacije, ki povzroča napako. StackTrace Uporablja se za prikaz nizov neposrednih okvirjev na kup klicev. TargetSite Uporablja se za pridobitev metode, ki vrže trenutno izjemo. Metode sistemskih izjem
Metode Opis Enako (objekt) Uporablja se za preverjanje, ali je navedeni objekt enak trenutnemu predmetu ali ne. Dokončaj () Uporablja se za osvobajanje virov in izvajanje čiščenja. GetBaseException () Uporablja se za pridobitev izjeme root. GetHashCode () Uporablja se za pridobivanje hash kode. GetObjectData (SerializationInfo, StreamingContext)
Uporablja se za pridobivanje podatkov o objektih. GetType () Uporablja se za pridobitev vrste izvajanja trenutnega primerka. MemberwiseClone () Uporablja se za ustvarjanje plitke kopije trenutnega predmeta. ToString () Uporablja se za ustvarjanje in vrnitev nizovne predstavitve trenutne izjeme. Primer sistemske izjeme
z uporabo sistemskega prostora imen CSharpProgram {class SystemExceptionExample {static void Main (string [] args) {try {int [] arr = new int [5] arr [10] = 25} catch (SystemException e) {Console.WriteLine (e)} }}}// izhod:
System.IndexOutOfRangeException: Indeks je bil zunaj meja polja.
na CSharpProgram.SystemExceptionExample.Main (String [] args) v F: C # TutorialC # ProgramsConsoleApp1ConsoleApp1Program.cs: vrstica 11
Sinhronizacija
V programu z več nitmi so niti dovoljeneza dostop do katerega koli vira zadoločeno izvedbočas. Niti si delijo vire in izvajajo asinhrono. Dostop do skupnih virov (podatkov)je lahko pomembna nalogato na splošnose lahko ustavisistem.nanj težimos sinhronim ustvarjanjem niti.
Primer brez sinhronizacije
z uporabo sistema z uporabo sistema System.Thading razred Edureka {public void PrintTable () {for (int i = 1 i<= 10 i++) { Thread.Sleep(100) Console.WriteLine(i) } } } class Program { public static void Main(string[] args) { Edureka p = new Edureka() Thread t1 = new Thread(new ThreadStart(p.PrintTable)) Thread t2 = new Thread(new ThreadStart(p.PrintTable)) t1.Start() t2.Start() } }// izhod:
eno
eno
2.
2.
3.
3.
4.
4.
5.
5.
6.
6.
7.
7.
8.
8.
9.
9.
10.
10.
Primer sinhronizacije
z uporabo sistema z uporabo sistema System.Thading razred Edureka {public void PrintTable () {lock (this) {for (int i = 1 i<= 10 i++) { Thread.Sleep(100) Console.WriteLine(i) } } } } class Program { public static void Main(string[] args) { Edureka p = new Edureka() Thread t1 = new Thread(new ThreadStart(p.PrintTable)) Thread t2 = new Thread(new ThreadStart(p.PrintTable)) t1.Start() t2.Start() } }// izhod:
eno
2.
3.
4.
5.
6.
7.
8.
9.
10.
eno
2.
3.
4.
5.
6.
7.
8.
9.
10.
Nove lastnosti
Microsoft je v jezik C # dodal številne najnovejše funkcije, nekatere so omenjene spodaj.
C # 6.0
- Uporaba statične direktive
- Filtri izjem
- Čakanje na ulov / končno bloki
- Samodejni inicializatorji lastnosti
- Privzete vrednosti za lastnosti samo getter
- Izraziti člani
- Ničelni propagator
- Interpolacija nizov
- Ime operaterja
- Inicializator slovarja
- Prevajalnik kot storitev (Roslyn)
C # 7.0
- Ujemanje vzorcev
- Tuple
- Dekonstrukcija
- Lokalne funkcije
- Števčno ločilo
- Binarni literali
- Ref se vrača in domačini
- Ekspresijski konstruktorji in zaključni deli
- Pridobivalci in seterji izrazitega telesa
- Izhodne spremenljivke
- Splošni asinhronski tipi vrnitve
C # 7.1
- Async main
- Privzeti izrazi
Vprašanja za intervju na podlagi C #
Pomembna vprašanja za intervju, ki temeljijo na programskem jeziku C #, najdete v tej posodobljeni različici .
S tem smo prišli do konca tega članka 'Vadnica za C #'. Upam, da ste razumeli pomen podatkovnih struktur, sintakse, funkcionalnosti in operacij, izvedenih z njihovo uporabo. Zdaj, ko ste s tem razumeli osnove programiranja v jeziku C #Vadnica za C #, preverite zagotovljeno usposabljanje avtor Edureka o mnogih tehnologijah, kot je Java, Pomlad in mnogiše več, zaupanja vredno podjetje za spletno učenje z mrežo več kot 250.000 zadovoljnih učencev po vsem svetu je dobilo vprašanje za nas? Omenite ga v oddelku za komentarje tega spletnega dnevnika 'Vadnica za C #' in takoj se vam bomo oglasili.