Vodič za C #: Osnove koje trebate svladati C #



Ovaj članak o C # vodiču pomoći će vam s detaljnim znanjem o osnovama C #, zajedno sa primjerima u stvarnom vremenu za bolje razumijevanje.

C # je višenamjenski i robustan programski jezik koji je razvila tvrtka Microsoft Corporation 2000. godine kao smrtonosna konkurencija Javi. Najpopularniji je i dominantan programski jezik što se tiče web razvoja i razvoja stolnih aplikacija.

U ovom vodiču za C # naučit ćemo sljedeće pojmove.





Osnove C #

Uvod u programski jezik C #

Ranih 90-ih Java je bila vodeći programski jezik za web razvoj, razvoj aplikacija za stolna računala i mnoga druga područja. Microsoft je želio doći do konkurenta s mnogim naprednim značajkama koje Java mogu ostaviti daleko iza sebe.



C#-Tutorial-hejlsberg_bio

Bilo je to 2000. godine, Anders Hejlsberg i njegov Microsoftov tim došli su na ideju o C # popularno zvanom C-Sharp. Ovu je inicijativu odobrila Međunarodna organizacija za standarde (VELIKO) i Europskog udruženja proizvođača računala (ECMA). i konačno, C # ulazi u svijet razvoja softvera.

Značajke programskog jezika C #



  • Objektno orijentirani programski jezik

Pristup objektno orijentiranom programiranju ono je što čini C # oštrim programom najprikladnijim i jednostavnim za razvoj i održavanje programskog jezika.

  • Jezik siguran za tip

Značenje Type-Safe je da će kompajler dobiti pristup samo memorijskom mjestu koje ima dozvolu za izvršavanje. Ova značajka poboljšava sigurnost koda na eksponencijalnu razinu.

  • Interoperabilnost

Značajka interoperabilnosti čini C # dovoljno sposobnim da učini sve što je izvorno za C ++ na učinkovitiji način koji može nadmašiti sam C ++.

  • Bogata knjižnica

C # omogućuje pristup višestrukim brojevima ugrađenih knjižnica koje pružaju unaprijed programirane funkcionalnosti kako bi se smanjilo vrijeme provedeno u procesu razvoja.

  • Skalabilno i nadogradivo

C # je dizajniran da bude superiorniji među ostalim programskim jezicima. Stoga je uvijek otvoren za ažuriranja i svojim se značajkama održava vrlo skalabilnim.

  • Komponenta orijentirana

Programeri u Microsoftu koristili su pristup zasnovan na komponentama za razvoj C #. Ovo je najzastupljenija razvojna metodologija za održavanje C # visoko skalabilnog i ažuriranog.

  • Strukturirani jezik

Pristup strukturiranom programiranju poželjan je tijekom životnog ciklusa razvoja softvera, jer postaje lako razviti kompajliranje i primjenu softvera u usporedbi s pristupom programiranja usmjerenom na postupak.

  • Brzo

C # programiranje je brže u kompilaciji i izvršavanju u usporedbi s C ++ i drugim programskim jezicima.

Montaža

Dokazano je da Microsoft Visual Studio je najbolji u klasi Editor za programiranje na C #. Instalirat ćemo i postaviti Microsoft Visual Studio za izvršavanje naših C # programa slijedeći dolje navedene korake:

Korak 1 : Preuzmite Microsoft Visual Studio

Google za najnovija verzija Visual Studija i preuzmite instalirati datoteku u vaš lokalni sustav, a zatim trčanje instalacijsku datoteku kao an administrator.

Korak 2: Odaberite .NET Desktop razvojni paket

Jednom kada pokrenete instalacijski program, Visual Studio Editor će se uspješno preuzeti u vaš lokalni sustav, a kasnije će se na zaslonu radne površine prikazati dijaloški okvir u kojem se traži da određeni paket trebate u svom sustavu. Ovdje morate odabrati Razvoj radne površine .NET paket.

Korak 3: Postavite okruženje C #

Jednom kada paketi za .NET razvoj se preuzmu, tada će se na vašem zaslonu prikazati drugi dijaloški okvir u kojem se traži razvojno okruženje koje tražite. Evo, trebaš odaberite okruženje za C #.

Korak 4: Stvorite svoj prvi projekt

Kad se okruženje postavi, svi ste spremni. Pokrenite Visual Studio i odaberite stvoriti novi projekt opcija u prikazanom dijaloškom okviru.

Bit ćete preusmjereni na sljedeći dijaloški okvir i tamo trebate odabrati Biblioteku predavanja kao .NET Standard kao što je prikazano niže.

U sljedećem dijaloškom okviru od vas će se zatražiti Konfigurirajte svoj projekt . Konfigurirajte ga i sada ste u uređivaču. Napišite svoj prvi program i trčanje to. Izlaz će biti uspješno prikazan na Naredbeni redak.

pomoću sistemske klase Edureka {static void Main (string [] args) {Console.WriteLine ('Dobro došli u Edureka !, Sretno učenje ..!'}}}

//Izlaz:

Izvršimo svoj prvi C # program.

Struktura programa C #

Sad kad smo izvršili svoj prvi program C #, shvatimo detaljno njegovu strukturu. Jednostavni program C # ima sljedeće dijelove.

koristeći sistemski prostor imena ConsoleApplication1 {javna klasa Edureka {javna statička praznina Main (string [] args) {Console.WriteLine ('Dobro došli u Edureka !, Sretno učenje ..!'}}}}

//Izlaz:

Dobrodošli u Edureku !, Sretno učenje ..!

  • razred: klasa se općenito može definirati kao a ključna riječ koja se koristi za definiranje klase u programu C #.
  • Edureka: To je ime Razred. Predavanje se često smatra planom koji pohranjuje članove i metode povezane s razredom.
  • Glavni: U osnovi je primarna metoda cijelog programa C #, djeluje kao prolaz za kontrolu koja ulazi u program. Izvršava se prije izvršenja bilo koje druge metode programa.
  • poništiti: Ovaj je segment koda označen sa povratni tip metode. To može biti bilo koji tip podataka osim void. Void znači da metoda nema podataka koji se iz nje vraćaju.
  • statički: Ovo je ključna riječ što kaže da su deklarirani članovi podataka statični i da je deklariranim članovima dodijeljena namjenska memorija.
  • Niz [] argumenti: Sličan je argumentima naredbenog retka koje koristimo u našem programu. Dok izvršavamo naš program, u osnovi ga prolazimo argumenti, što će program prihvatiti zbog ove izjave.
  • System.Console.WriteLine („Dobro došli u Edureku !, Sretno učenje ..!“) Ovdje, Sustav je prostor imena. Konzolaje da je navedena kategorijau System namespaceu. The WriteLine () je li tostatičkitehnikakonzolekategorija koja je zaposlena za zapisivanjetekst na konzoli.

Sada, naučimo vrste podataka dostupne na C #.

Tipovi podataka

Tipovi podataka u C # podijeljeni su u tri kategorije koje su opisane u nastavku.

Vrijednosti tipova podataka

The Vrijednosti tipova podataka nalaze se u System.ValueType Biblioteka i uvijek su spremne za izravni pristup, a varijable se mogu izravno dodijeliti određenoj vrijednosti. Vrste podataka vrijednosti dodatno su klasificirane u dvije vrste kao što je prikazano u nastavku:

  • Unaprijed definirani tipovi podataka
  • Korisnički definirani tipovi podataka

Unaprijed definirani tipovi podataka: To su oni koje obično koristimo u svakodnevnom programiranju. Ove vrste podataka unaprijed su definirali programeri jezika i oni su spremni za upotrebu za programere.

Primjer:

int, float, char, short double, itd

Korisnički definirani tipovi podataka: Postoje situacije u kojima ćemo možda trebati pohraniti različite vrijednosti iz Tipova podataka u jednu varijablu. U tim slučajevima, Unaprijed definirani tipovi podataka nisu samo dovoljni. Korisnik definiran Vrste podataka su poput prilagodljivih tipova podataka za korisnika.

Primjer: Struktura, Enum

Vrsta podataka Raspon dodijeljene memorije Veličina memorije
potpisani char -128 do 127 1 bajt
nepotpisani char 0 do 127 1 bajt
ugljen -128 do 127 1 bajt
potpisan kratko -32.768 do 32.767 2 bajta
nepotpisani kratki 0 do 65.535 2 bajta
kratak -32.768 do 32.767 2 bajta
potpisao međ -2,147,483,648 do -2,147,483,647 4 bajta
nepotpisani int 0 do 4.294.967.295 4 bajta
int -2,147,483,648 do -2,147,483,647 4 bajta
potpisan dugo -9,223,372,036,854,775,808 do 9,223,372,036,854,775,807 8 bajtova
nepotpisano dugo 0 do 18.446.744.073.709.551.615 8 bajtova
dugo -9,223,372,036,854,775,808 do 9,223,372,036,854,775,807 8 bajtova
plutati 1,5 * 10-45 - 3,4 * 1038, (preciznost od 7 znamenki) 4 bajta
dvostruko 5,0 * 10-324 - 1,7 * 10308, (preciznost od 15 znamenki) 8 bajtova
decimal -7,9 * 10-28 - 7,9 * 1028, (preciznost 28 znamenki) 16 bajtova


Tip podataka pokazivača

Pointer Type je jednostavan tip podataka. Njegova je funkcionalnost potpuno slična pokazivačima u C. Dizajnirani su za pohranu adrese drugog pokazivača.

plutajuće * ptr

Referentni tipovi podataka

Ime je samo po sebi razumljivo. The Referentni tipovi podataka zapravo ne pohranjuju varijable, već pohranjuju referentnu vrijednost na tu određenu varijablu. Drugim riječima, oni pohranjuju adresu stvarne varijable.

Referentne varijable klasificirane su u tri različite vrste kako je spomenuto u nastavku:

  • Vrsta objekta

Tip podataka objekta dostupan je u Sustav.Objekt Razred.PredmetvrsteMože bitidodijeljenavrijednostiostale vrste,referencavrste, unaprijed definirano, korisnički definiranovrste. Ali prijezadatakvrijednosti, to zahtijeva tip pretvorba.

objekt abc abc = 50 // to se zove boks
  • Dinamički tip

Varijable Dynamic Type dizajnirane su za pohranu gotovo svih vrsta vrijednosti. Pozvan je kao Dynamic Type, jer se provjera tipa vrijednosti odvija u vrijeme izvođenja

dinamički x = 10
  • Vrsta niza

Vrsta niza dostupna je u System.String razred. Vrsta niza dizajnirana je za pohranu nizovnih literala. String Literals pohranjeni su u dva oblikadva oblika

    • citirano
    • @ citirano.
Niz S = 'Edureka'
  • The @ citirano string literal izgleda
@ 'Edureka'

Sada ćemo razumjeti varijable.

Varijable

Varijable su nazivi dodijeljeni memorijskom mjestu koji pohranjuju određene podatke koje je dao korisnik i kojima je lako pristupiti pomoću imena varijable. U C # je dostupno pet vrsta varijabli

Tip Primjer
Nula Ništavni podaci
Booleova Istinito i Netačno
Cijeli broj Int, Char, Byte, Short, Long
Plutati Float i Double
Decimal Decimal

Primjer:

int a, b dvostruko x plutajuće p char abc

Pravila koja treba slijediti za deklariranje varijabli u C #

  • Varijabla može sadržavati abecede, znamenke i donje crte.
  • Naziv varijable može započeti samo s abecedom ili donjim crtama.
  • Varijable ne mogu započeti znamenkom ili posebnim znakom.
  • Prazni razmaci nisu dopušteni između naziva varijable.
  • Rezervirane ključne riječi zabranjene su za upotrebu kao imena varijabli.

Operateri

Operator se može definirati kao poseban simbol koji objašnjava računalu da izvrši određenu matematičku logičku operaciju na skupu varijabli. C # uključuje niz operatora koji su spomenuti kao u nastavku.

  • Aritmetički operatori
  • Relacijski operateri
  • Logički operatori
  • Bitovni operateri
  • Operatori dodjele

Aritmetički operatori

Operater Primjer Opis
+ A + B Dodaje dva operanda
- A - B Podloge dva operanda
* A * B Množi dva operanda
/ A / B Podijeli dva operanda
% A% B Ostatak Dva operanda
++ A ++ Operacija prirasta
- DO- Operacija smanjenja

Relacijski operateri

Operater Primjer Opis
== A == B Istina, ako su oba operanda jednaka, Else False
! = A! = B Istina, ako oba operanda nisu jednaka, Else False
> A> B Istina, ako je A veće, drugo lažno
< DO Istina, ako je B veći, inače lažan
> = A> = B Istina, ako je A veći ili jednak, inače lažno
<= DO<= B Istina, id B je jednako jednak, inače lažan

Logički operatori

Operater Primjer Opis
&& A && B Istina, ako su oba operanda istinita, Else False
|| A || B Istina, ako je jedan od operanda istinit, Else False
! A! B Obrne logičko stanje operanda

Bitovni operateri

DO B A & B A | B A ^ B
jedan jedan jedan jedan 0
jedan 0 0 jedan jedan
0 jedan 0 jedan jedan
0 0 0 0 0
Operater Primjer Opis
~ (~ A) Binary One's Complement Operator je unarni i ima učinak 'prevrtanja' bitova.
<< DO<<2 Binarni lijevi mjenjač. Vrijednost lijevog operanda pomiče se lijevo za broj bitova naveden desnim operandom.
>> A >> 2 Binarni desni mjenjač. Vrijednost lijevog operanda pomiče se udesno za broj bitova određenih desnim operandom.

Operatori dodjele

Operater Primjer Opis
= A = B + C A = B + C, B + C je dodijeljen A
+ = A + = B A = A + B, A + B je dodijeljen A
- = A - = B A = A-B, A-B se dodjeljuje A
* = A - = B A = A * B, A * B je dodijeljen A
/ = A / = B A = A / B, A / B je dodijeljen A
% = A% = B A = A% B, A% B je dodijeljen A
<<= DO<<= 2 Lijevi mjenjač i operater dodjele
>> = A >> = 2 Desni mjenjač i operator dodjele
& = A & = 2 Bit-ov i operator dodjele
^ = A ^ = 2 Bitno ekskluzivni i operator dodjele
| = A! = 2 Bitno uključeni i operator dodjele

Petlje

DO petlja naredba se koristi za opetovano izvršavanje bloka izjava dok se ne ispuni određeni uvjet. Jezik C # sastoji se od sljedećih petlji.

  • Za Loop
  • Dok je Petlja
  • Do While Loop

Za Loop

The za petlju koristi se za izvršavanje određenog segmenta koda više puta dok se ne ispuni zadani uvjet.

Sintaksa

za (prirast / smanjenje) uvjeta inicijalizacije {// segment koda}

Dijagram toka:

Primjer:

korištenjem javne javne klase ForExample {public static void Main (string [] args) {for (int i = 1 i<= 5 i++) { Console.WriteLine(i) } } } 

//Izlaz:

jedan
2
3
4
5

Dok je Petlja

The Dok petlja koristi se za izvršavanje segmenta koda za višestruki broj puta dok se ne zadovolji određeni uvjet.

Sintaksa

while (uvjet) {// kôd koji treba izvršiti}

Dijagram toka:

Primjer:

pomoću petlje prostora prostora imena {class Program {static void Main (string [] args) {int x = 5 while (x<= 10) { Console.WriteLine('The value of a: {0}', x) x++ } Console.ReadLine() } } } 

//Izlaz:

Vrijednost a: 5
Vrijednost a: 6
Vrijednost a: 7
Vrijednost a: 8
Vrijednost a: 9
Vrijednost a: 10

Do While Loop

Petlja Do while potpuno je slična while Loop, ali jedina razlika je u tome što je uvjet postavljen na kraj petlje. Stoga se petlja izvršava barem jednom.

Sintaksa

do {// kôd koji treba izvršiti} while (uvjet)

Dijagram toka:

Primjer:

pomoću prostora imena sistema 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, proizvod) i ++} dok (i<= 10) } } } 

//Izlaz:

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

Uvjetovano

Uvjetne izjave koriste se za izvršenje izjava ili grupa od izjave na temelju nekog stanja. Ako je stanje je istina tada C # izjave izvršavaju se inače sljedeći izjava bit će izvršen.

Različite vrste uvjetnih izjava u jeziku C ++ su kako slijedi:

  1. Ako izjava
  2. Izjava ako-drugo
  3. Ugnježdena izjava If-else
  4. Ako-drugo Ako ljestve
  5. Izjava o prebacivanju

Ako izjava

Singl ako naredba na jeziku C # koristi se za izvršavanje koda ako je uvjet istinit. Naziva se i jednosmjernom izjavom o odabiru.

Sintaksa

if (boolean-expression) {// izrazi izvršeni ako je boolean-izraz tačno}

Dijagram toka:

Primjer:

pomoću prostora imena sustava Conditional {class IfStatement {public static void Main (string [] args) {int number = 2 if (broj<5) { Console.WriteLine('{0} is less than 5', number) } Console.WriteLine('This statement is always executed.') } } } 

//Izlaz:

2 je manje od 5
Ova se izjava uvijek izvršava.

Izjava ako-drugo

The ako-drugo naredba na jeziku C koristi se za izvršavanje koda ako je uvjet istinit ili netačan. Naziva se i dvosmjernom izjavom o odabiru.

c ++ metoda sortiranja

Sintaksa

if (boolean-expression) {// naredbe izvršene ako je boolean-izraz tačno} else {// izrazi izvršene ako je boolean-izraz false}

Dijagram toka:

Primjer:

pomoću prostora imena sustava Conditional {class IfElseStatement {public static void Main (string [] args) {int number = 12 if (broj<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.') } } } 

//Izlaz:

12 je veće ili jednako 5
Ova se izjava uvijek izvršava.

Ugnježdena izjava If-else

Ugniježđeno ako-drugo naredba se koristi kada program zahtijeva više od jednog probnog izraza. Naziva se i višesmjernom izjavom o odabiru. Kada niz odluka uključuje izjavu, koristimo je ako-drugo izjava u ugniježđenom obliku.

Sintaksa

if (boolean-expression) {if (ugniježđeni-izraz-1) {// kôd koji treba izvršiti} else {// kôd koji treba izvršiti}} else {if (ugniježđeni-izraz-2) {// kôd koji treba izvršiti } else {// kôd koji treba izvršiti}}

Dijagram toka:

Primjer:

pomoću prostora imena sustava Uvjetno {klasa ugniježđeno {javna statička praznina Main (string [] args) {int first = 7, second = -23, third = 13 if (first & gt second) {if (first

//Izlaz:

13 je najveći

Inače ako ljestve

The ako-inače-ako naredba se koristi za izvršavanje jednog koda iz više uvjeta. Naziva se i izjavom o odluci s više staza. To je lanac naredbi if..else u kojem je svaka naredba if povezana s else if naredbom i last bila bi naredba else.

Sintaksa

if (condition1) {// kôd koji treba izvršiti ako je uvjet1 istinit} else if (uvjet2) {// kôd koji treba izvršiti ako je uvjet2 istinit} else if (uvjet3) {// kôd koji treba izvršiti ako je uvjet3 tačno} ... else {// kôd koji treba izvršiti ako su svi uvjeti netačni}

Dijagram toka:

Primjer:

koristeći sistemsku klasu 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 (' ja je 20 ') else Console.WriteLine (' i nije prisutan ')}}

//Izlaz:

imam 20 godina

Izjava o prebacivanju

Sklopka Izjava djeluje kao zamjena za dugačku ljestvicu ako-inače-ako koja se koristi za testiranje popisa slučajeva. Izraz prekidača sadrži jednu ili više naljepnica koje se testiraju prema izrazu prekidača. Kada se izraz podudara sa slučajem, tada će se izvršiti pridruženi izrazi s tim slučajem.

Sintaksa

prekidač (varijabla / izraz) {case value1: // Izvodi se ako je izraz (ili varijabla) = value1 break case value2: // Izvodi se ako je izraz (ili varijabla) = value1 break ... ... ... .. . ... ... zadani: // Izvodi se izvršavaju ako se ne podudara nijedan slučaj}

Dijagram toka:

Primjer:

pomoću prostora imena sustava Uvjetno {class SwitchCase {public static void Main (string [] args) {char ch Console.WriteLine ('Enter abeceda') ch = Prekidač 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 ('Samoglasnik') slučaj prekida 'u': Console.WriteLine ('Samoglasnik') prekid zadane vrijednosti: Console.WriteLine ('Nije samoglasnik') prekid}}}}

//Izlaz:

Unesite abecedu
je
Samoglasnik

Žice

Niz Tip podataka je član System.String Razred. Sposoban je za pohranu podataka tipa znakova. Na Stingovima možemo izvoditi razne operacije kao što suspajanje, usporedba, dobivanje podniza, pretraživanje, obrezivanje, zamjena i još mnogo toga.

Analogija gudača i žice

U C # Niz i niz su ekvivalentne. Riječ string je a ključna riječ i djeluje kao System.String razred. Za deklariranje nizova možemo koristiti bilo koju od inačica.

Sintaksa:

string s1 = 'Edureka' // stvaranje niza pomoću ključne riječi string String s2 = 'Happy Learning' // stvaranje niza pomoću klase String

Primjer:

pomoću sistemske javne klase 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 '} string s2 = new string (ch) Console.WriteLine ( s1) Console.WriteLine (s2)}}

//Izlaz:

Edureka
Vodič za Csharp

String metode u C #

Metoda Opis
Klon() Koristi se za vraćanje reference na ovu instancu Stringa.
Usporedi (String, String) Koristi se za usporedbu dva navedena String objekta.
Concat (žica, žica) Spojite dva navedena primjerka Stringa.
Sadrži (niz) Vrati vrijednost koja označava navedeni podniz
Kopiraj (niz) Koristi se za stvaranje nove instance Stringa s istom vrijednošću
CopyTo (Int, Char [], Int, Int) Kopira znakove s određenog položaja
Jednako (String, String) Utvrđuje da dva String objekta imaju istu vrijednost.
Format (niz, objekt) Zamijenite jednu ili više stavki formata u navedenom nizu
IndexOf (niz) Izvještava indeks zasnovan na nuli prvog pojavljivanja
Umetni (Int32, niz) Vraća novi niz u kojem je niz umetnut u indeks.
IsInterned (niz) Označava da je ovaj niz u Unicode normalizacijskom obliku C.
IsNullOrEmpty (niz) Označava da je navedeni niz null ili prazan niz.
IsNullOrWhiteSpace (niz) Koristi se za označavanje je li navedeni niz null, prazan,
Pridružite se (String, String []) Koristi se za spajanje svih elemenata niza nizova
LastIndexOf (Char) Izvještava položaj indeksa na temelju nule posljednjeg znaka
LastIndexOfAny (Char []) Izvještava položaj indeksa na temelju nule posljednjeg znaka
Ukloni (Int32) Vraća novi niz u kojem su svi znakovi
Zamijeni (niz, niz) Vraća novi niz u kojem su sve pojave niza
Split (Char []) Koristi se za dijeljenje niza u podnizove
Počinje s (niz) Koristi se za provjeru je li početak ovog niza
Podniz (Int32) Koristi se za dohvaćanje podniza iz ove instance.
ToCharArray () Kopira znakove u ovom primjeru u niz Unicode.
ToString () Koristi se za vraćanje instance String.
Obreži () Obrezuje niz


Nizovi

Slično ostalim programskim jezicima, C # ima nizove. Nizovi su jednostavne podatkovne strukture koje su dizajnirane za pohranu istog tipa podataka elemenata na susjednom memorijskom mjestu.

C # podržava sljedeće tipove polja.

  • Jednodimenzionalni niz
  • Višedimenzionalni niz
  • Nazubljeni niz

Jednodimenzionalni niz

Jednodimenzionalni niz pohranjuje elemente u obliku jednog retka.

Sintaksa

int [] arr = novi int [5] // stvaranje niza

Primjer:

koristeći System javnu klasu ArrayExample {public static void 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 

//Izlaz:

10
dvadeset
30
40
pedeset

Višedimenzionalni niz

Multidimenzionalni niz pohranjuje elemente u obliku više dimenzija poput matrice i kocke itd.

Sintaksa

int val = a [2,3]

Primjer:

pomoću prostora imena sistema 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() } } } 

//Izlaz:

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

Nazubljeni niz

Jagged Array je jednostavno niz nizova.

Primjer:

pomoću System namespace ArrayApplication {class MyArray {static void Main (string [] args) {int [] [] a = new int [] [] {new int [] {0,0}, new int [] {1,2 }, novi int [] {2,4}, novi int [] {3, 6}, novi 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() } } } 

//Izlaz:

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

Zbirka se jednostavno može smatrati skupom predmeta prikupljenih zajedno kako bi se na prikupljene podatke primijenile neke funkcije. Operacije koje se jednom mogu izvršiti na zbirci su,

  • spremi objekt
  • ažurirati objekt
  • izbrisati objekt
  • dohvatiti objekt
  • objekt pretraživanja i
  • razvrstati objekt

Vrste zbirki

Postoje tri različite mogućnosti rada s kolekcijama. Tri imena su navedena u nastavku:

  • System.Collections.Generic razreda
  • Sustav.Zbirke razreda
  • System.Collections.Concurrent razreda

Klasa System.Collections.Generic ima sljedeće sorte klasa:

  • Popis
  • Stog
  • Red
  • LinkedList
  • HashSet
  • SortedSet
  • Rječnik
  • Sortirani rječnik
  • SortedList

The Sustav.Zbirke razredi se smatraju naslijeđenim razredima. uključuju slijedeće razrede.

  • ArrayList
  • Stog
  • Red
  • Hashtable

The System.Collections.Concurrent razredaimenski prostor pruža klase za operacije sigurne u nitima. Sada više niti neće stvarati problem za pristup stavkama kolekcije. klase dostupne u ovome su,

  • BlockingCollection
  • ConcurrentBag
  • ConcurrentStack
  • ConcurrentQueue
  • Istodobni rječnik
  • Pregrade
  • Pregrade
  • OrderablePartitioner

Popis

The popis smatra se strukturom podataka dostupnom u System.Collection.Generics prostor imena. Može pohraniti i dohvatiti elemente. Popis može pohraniti dvostruke elemente.

Primjer:

koristeći System koristeći System.Collections.Generic javna klasa Edureka {public static void Main (string [] args) {var names = new List () names.Add ('Sandhya') names.Add ('Arun') names.Add ( 'Prashanth') imena.Dodajte ('Kiran') foreach (ime imena u imenima) {Console.WriteLine (name)}}}

//Izlaz:

Sandhya
Arun
Prashanth
Kiran

Hash set

C # HashSetkategorija je često naviknutatrgovina,oduzetiiličitati komponente. Tonepohraniti duplikatkomponente.to se potičekoristiti HashSet kategorijaakoimašskladištitijedino osebujan komponente . to je pronađeno u System.Collections.Generic space names.

Primjer:

koristeći System koristeći System.Collections.Generic javna klasa Edureka {public static void Main (string [] args) {var names = new HashSet () names.Add ('Sunil') names.Add ('Amar') names.Add ( 'Pujari') imena.Dodaj ('Imran') imena.Dodaj ('karan') foreach (ime imena u imenima) {Console.WriteLine (name)}}}

//Izlaz:

Sunil
Amar
Pujari
Imran
karan

Razvrstani set

C # SortedSetrazreda često su naviklitrgovina, ukloniti ili čitati elementi . Održava uzlazni poredak inepohraniti duplikatelementi.brzo jeza upotrebu SortedSetkategorijaakoimašskladištiti osebujan komponente i održavati uzlazni poredak.to jepronađeno u System.Collections.Generic space names.

Primjer:

koristeći System koristeći System.Collections.Generic javna klasa Edureka {public static void Main (string [] args) {var names = new SortedSet () names.Add ('Sanjay') names.Add ('Anuradha') names.Add ( 'Praveen') imena.Dodaj ('Ravi') imena.Dodaj ('Kajol') foreach (ime imena u imenima) {Console.WriteLine (name)}}}

//Izlaz:

Anuradha
Kajol
Praveen
Ravi
Sanjay

Stog

The stog je jednostavna kolekcija koja slijedi RUB ili prvi u zadnjem out postupku tijekom obrade elemenata pohranjenih u njemu.

Primjer:

koristeći System koristeći System.Collections.Generic public class Edureka {public static void Main (string [] args) {Stack names = new Stack () names.Push ('Chandan') names.Push ('Pooja') names.Push ( 'James') imena.Push ('Rajesh') imena.Push ('kumar') foreach (ime niza u imenima) {Console.WriteLine (name)} Console.WriteLine ('Peek element:' + names.Peek () ) Console.WriteLine ('Pop:' + names.Pop ()) Console.WriteLine ('After Pop, Peek element:' + names.Peek ())}}

//Izlaz:

kumar
Rajesh
James
Pooja
Chandan
Zaviri element: kumar
Pop: kumar
Nakon Popa, Peek element: Rajesh

Red

Red čekanja je potpuno sličan Stacku, ali jedina je razlika što Red slijedi FIFO ili princip prvog ulaza i izlaska tijekom obrade elemenata pohranjenih u njemu.

Primjer:

koristeći System koristeći System.Collections.Generic javnu klasu Edureka {public static void Main (string [] args) {Imena reda = new Queue () names.Enqueue ('Srujan') names.Enqueue ('Prajat') names.Enqueue ( 'John') names.Enqueue ('Raju') names.Enqueue ('Hari') foreach (ime niza u imenima) {Console.WriteLine (name)} Console.WriteLine ('Peek element:' + names.Peek () ) Console.WriteLine ('Dequeue:' + names.Dequeue ()) Console.WriteLine ('After Dequeue, Peek element:' + names.Peek ())}}

//Izlaz:

Srujan
Prajat
Ivan
Žestoko
Dan
Peek element: Srujan
Dequeue: Srujan
Nakon Dequeue, Peek element: Prajat

Povezani popis

Povezani popis je zbirka dinamičke memorije. Elementi na povezanom popisu pohranjuju se pristupanjem memoriji iz hrpe i neprekidnim pohranjivanjem elemenata povezivanjem njihovih adresa.

Primjer:

koristeći System koristeći System.Collections.Generic javnu klasu Edureka {public static void Main (string [] args) {var names = new LinkedList () names.AddLast ('Rajat') names.AddLast ('Arun') names.AddLast ( 'Prakash') imena.AddLast ('jay') imena.AddFirst ('sai') foreach (ime imena u imenima) {Console.WriteLine (name)}}}

//Izlaz:

sai
Granice
Arun
Prakash
sojka

Rječnik

Rječnik kategorijakoristiidejaraspršivača. Pohranjuje vrijednosti napremisaključa. Sadržiosebujantipkejedino. Popomoćod ključa,mi ćemo jednostavnopretražiti ilioduzeti elemente.to jepronađeno u System.Collections.Generic space names.

Primjer:

koristeći System koristeći System.Collections.Generic javna klasa Edureka {public static void Main (string [] args) {Imena rječnika = nova imena Rječnika (). Dodaj ('1', 'Shiva') imena.Dodaj ('2', 'Prasad') imena.Dodajte ('3', 'Preetam') imena.Dodajte ('4', 'Roy') imena.Dodajte ('5', 'Akash') foreach (KeyValuePair kv u imenima) {Konzola. Linija zapisivanja (kv.Key + '' + kv.Value)}}}

//Izlaz:

1 Šiva
2 Prasad
3 Preetam
4 Roy
5Akaš

Sortirani rječnik

The Sortirani rječnik kategorijakoristioblikovatiraspršivača. Pohranjuje vrijednosti naidejaključa. Sadržiosebujantipke i održava uzlazni poredak naidejaključa. Popomoćod ključa,mi ćemo jednostavnopretražiti ilioduzeti elemente.to jepronađeno u System.Collections.Generic space names.

Primjer:

koristeći System koristeći System.Collections.Generic javnu klasu Edureka {public static void Main (string [] args) {SortedDictionary names = new SortedDictionary () names.Add ('1', 'Arun') names.Add ('4', 'Vishal') imena.Dodajte imena ('5', 'Ramesh'). Dodajte imena ('3', 'Vidya'). Dodajte ('2', 'Pallavi') foreach (KeyValuePair kv u imenima) {Konzola. Linija zapisivanja (kv.Key + '' + kv.Value)}}}

//Izlaz:

1 Šiva
2 Prasad
3 Preetam
4 Roy
5Akaš

Poredani popis

The SortedList jeanniz parova ključ / vrijednost. Pohranjuje vrijednosti napremisaključa. Sortirani popiskategorijasadržiosebujantipke i održava uzlazni poredak napremisaključa. Popomoćod ključa,u mogućnosti smo jednostavnopretražiti ili uklonitielementi.to jenađeno u System.Collections.Generic prostor imena.

Primjer:

koristeći System koristeći System.Collections.Generic javnu klasu Edureka {public static void Main (string [] args) {SortedDictionary names = new SortedDictionary () names.Add ('1', 'Arun') names.Add ('4', 'Vishal') imena.Dodajte imena ('5', 'Ramesh'). Dodajte imena ('3', 'Vidya'). Dodajte ('2', 'Pallavi') foreach (KeyValuePair kv u imenima) {Konzola. Linija zapisivanja (kv.Key + '' + kv.Value)}}}

//Izlaz:

1 Arun
2 Palavi
3 Vidya
4 Vishal
5Ramesh

Struktura

Struktura je korisnički definirani tip podataka dizajniran za pohranu više elemenata različitog tipa podataka. Struktura se deklarira pomoću ključne riječi strukt.

Primjer:

pomoću System struct Books {naslov javnog niza javni niz autora autor javnog niza predmet public int book_id} javna klasa Edureka {public static void Main (string [] args) {Books Book1 Books Book2 Book1.title = 'C # Programming' Book1.author = ' Ramchandra Kumar 'Book1.subject =' Vodič za programiranje C ++ 'Book1.book_id = 95908978 Book2.title =' Naplata telekoma 'Book2.author =' Karan 'Book2.subject =' Vodič za obračun telekoma 'Book2.book_id = 18674900 Console.WriteLine ( 'Naslov 1. knjige: {0}', Book1.title) Console.WriteLine ('Autor 1. knjige: {0}', Book1.author) Console.WriteLine ('Naslov 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 ('Autor 2 knjige: {0}', Book2.author) Console.WriteLine ('Predmet knjige 2: {0}', Book2.subject) Console.WriteLine ('Book_id knjige: {0}', Book2.book_id) Console.ReadKey ()}}

//Izlaz:

Naslov 1. knjige: Programiranje na C #
1. knjiga Autor: Ramchandra Kumar
Predmet 1. knjige: Vodič za programiranje C ++
Knjiga 1 book_id: 95908978
Naslov 2. knjige: Naplata telekoma
Knjiga 2 Autor: Karan
Predmet knjige 2: Vodič za naplatu telekoma
Knjiga 2 book_id: 18674900

Funkcije

Funkcija je definirana kao blok koda glavnog koda. Funkcija se koristi za izvršavanje naredbi navedenih u bloku koda. Funkcija se sastoji od sljedećih komponenata.

  • Naziv funkcije: To je prepoznatljiv naziv koji se koristi za upućivanje poziva funkcije.
  • Tip povrata: Određuje vrstu podataka funkcije povratne vrijednosti.
  • Tijelo: Sadrži izvršne izjave.
  • Specifikator pristupa: Određuje dostupnost funkcije u aplikaciji.
  • Parametri: To je popis argumenata koje možemo proslijediti funkciji tijekom poziva.

Sintaksa

FunctionName () {// tijelo funkcije // return statement}

Primjer:

c ++ fibonacci rekurzivan
pomoću prostora imena sistema FunctionExample {klasa Edureka {javni niz Prikaži (niz poruka) {Console.WriteLine ('Unutar funkcije prikaza') povratna poruka} static void Main (string [] args) {Edureka program = new Edureka () string message = program .Show ('Edureka') Console.WriteLine ('Welcome' + poruka)}}}

//Izlaz:

Unutar funkcije prikaza
Dobrodošli u Edureku

Funkcije se mogu izvršiti na 3 različita načina:

  • Nazovite po vrijednosti
  • Nazovite putem reference
  • Izlazni parametar

Nazovite po vrijednosti

U C #, vrijednost -tip parametrijesutaj prolazreplikaizvorne vrijednosti zafunkcija umjestoreferenca. Tonepreinačitiprva vrijednost. Anizrađen amandmanu prošlovrijednost neDobodređena vrijednost.unutarsljedeći primjer,imamoproćivrijednost tijekomthepoziv.

Primjer:

pomoću prostora imena sistema CallByValue {class Edureka {public void Show (int val) {val * = val Console.WriteLine ('Vrijednost unutar funkcije show' + val)} static void Main (string [] args) {int val = 50 Edureka program = novi Edureka () Console.WriteLine ('Vrijednost prije pozivanja funkcije' + val) program.Show (val) Console.WriteLine ('Vrijednost nakon pozivanja funkcije' + val)}}}

//Izlaz:

Vrijednost prije pozivanja funkcije 50
Vrijednost unutar funkcije show 2500
Vrijednost nakon poziva funkcije 50

Nazovite putem reference

U metodi Poziv putem reference,do ref ključna riječ za prosljeđivanje argumenta kao referentnog tipa. Prenosi referencu argumenata na funkciju, a ne na kopiju izvorne vrijednosti. Promjene u prenesenim vrijednostima su trajne i preinačiti izvorna vrijednost varijable.

Primjer:

pomoću prostora imena sistema CallByReference {klasa Edureka {javna praznina Show (ref int val) {val * = val Console.WriteLine ('Vrijednost unutar funkcije show' + val)} static void Main (string [] args) {int val = 50 Edureka program = novi Edureka () Console.WriteLine ('Vrijednost prije pozivanja funkcije' + val) program.Show (ref val) Console.WriteLine ('Vrijednost nakon pozivanja funkcije' + val)}}}

//Izlaz:

Vrijednost prije pozivanja funkcije 50
Vrijednost unutar funkcije show 2500
Vrijednost nakon poziva funkcije 2500

Izlazni parametar

Parametar izlazapruža van ključna riječ za prosljeđivanje argumenata kao out-type. To je poput referentnog tipa, osim što ne zahtijeva inicijalizaciju varijable prije prolaska. Moramo koristiti van ključna riječ za prosljeđivanje argumenta kao out-type. Korisno je kada želimo da funkcija vraća više vrijednosti.

Primjer:

pomoću prostora imena sistema 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 ('Vrijednost prije odavanja varijable' + val) program.Show (out val) Console.WriteLine ('Vrijednost nakon primanja out varijable' + val)}}}

//Izlaz:

Vrijednost prije odavanja varijable 50

Vrijednostnakon primanja out varijable 25

Sada prijeđimo na objektno orijentirano programiranje

Objektno orijentirano programiranje

Objektno orijentirano programiranje Sustavje programska paradigma koja se temelji na konceptu predmeta koji sadrže članovi podataka i metode vezano za njih. Primarna svrha objektno orijentiranog programiranja je povećati fleksibilnost i održivost programa

Značajke objektno orijentiranog programiranja:

  • Naglašava se više na podacima, a ne na proceduri.
  • Programi su podijeljeni u objekte što olakšava rad s njima.
  • Strukture podataka dizajnirane su na takav način da karakteriziraju objekte.
  • Funkcije koje rade napodaci objekta smještaju se zajedno u strukturu podataka.
  • Podaci su skriveni i vanjske im funkcije ne mogu pristupiti bez dopuštenja.
  • Komunikacija između objekata može se odvijati uz pomoć funkcija.
  • Dodavanje novih podataka i funkcija postalo je jednostavno.
  • Slijedi pristup odozdo prema gore u dizajnu programa.

Objektno orijentirane paradigme u C # su kako slijedi

Nabrajanje u C #

Enum ili također pozvan kao an nabrajanje u C # koristi se za pohranjivanje konstantnih vrijednosti bez potrebe da ih mijenja tijekom cijelog izvršavanja programa C #. Tokoristi se za pohranu skupa imenovanih konstanti kao što su sezona, dani, mjesec, veličina itd

Primjer:

pomoću System javne klase EnumExample {public enum week {ponedjeljak, utorak, srijeda, četvrtak, petak, subota, nedjelja} public static void Main () {int x = (int) week.Monday int y = (int) week.Friday Console .WriteLine ('Ponedjeljak = {0}', x) Console.WriteLine ('Petak = {0}', y)}}

//Izlaz:

Ponedjeljak = 0
Petak = 4

Pristup objektno orijentiranom programiranju

Objektno orijentirani stil programiranja može se postići slijedeći dolje propisane metode.

Kapsulacija

Kapsulacija je metoda za kombiniranje metode zajedno sa svojim članovi podataka.

Primjer:

pomoću prostora imena sistema Edureka {klasa Pravokutnik {javna dvostruka duljina javna dvostruka širina javna dvostruka GetArea () {povratna dužina * širina} javna praznina Display () {Console.WriteLine ('Duljina: {0}', duljina) Console.WriteLine (' Širina: {0} ', širina) Console.WriteLine (' Područje: {0} ', GetArea ())}} klasa ExecuteRectangle {static void Main (string [] args) {Rectangle r = new Rectangle () r.length = 50 r.širine = 35 r.Display () Console.ReadLine ()}}}

//Izlaz:

Duljina: 50
Širina: 35
Površina: 1750

Apstrakcija

Apstrakcija je metoda za sakriti složeni dio kodiranja od korisnika pružajući mu samo potrebne podatke koji su mu potrebni.

Primjer:

pomoću System javne apstraktne klase Shape {public abstract void draw ()} public class Pravokutnik: Shape {public override void draw () {Console.WriteLine ('crtanje pravokutnika ...')}} public class Circle: Shape {public override void crtanje () {Console.WriteLine ('crtanje kruga ...')}} javna klasa TestAbstract {javna statička praznina Main () {Oblik ss = novi pravokutnik () s.draw () s = novi krug () s.draw ()}}

//Izlaz:

crtanje pravokutnika ...
crtanje kruga ...

Sučelje

The sučelje je potpuno sličan Apstrakciji. Funkcionalnost sučelja je sakriti nevažne podatke od korisnika i pružiti mu jedine važne podatke koji su mu potrebni.

Primjer:

pomoću javnog sučelja sustava Drawable {void draw ()} javna klasa Pravokutnik: Drawable {public void draw () {Console.WriteLine ('crtanje pravokutnika ...')}} javna klasa Krug: Drawable {public void draw () {Console .WriteLine ('crtanje kruga ...')}} javna klasa TestInterface {javna statička praznina Main () {Drawable dd = novi pravokutnik () d.draw () d = novi krug () d.draw ()}}

//Izlaz:

crtanje pravokutnika ...
crtanje kruga ...

Polimorfizam

Polimorfizamje kombinacija 'poli' + 'Morfi' što znači mnoge oblike. To je grčka riječ. To znači da segment koda može poprimiti više oblika. Imamo dvije vrste polimorfizma.

  • Sastaviti vremenski polimorfizam
  • Polimorfizam vremena izvođenja

Primjer:

pomoću System javne klase Animal {public string color = 'white'} public class Dog: Animal {public string color = 'black'} public class TestSeated {public static void Main () {Animal d = new Dog () Console.WriteLine ( d.boja)}}

//Izlaz:

bijela

Nasljeđivanje

Nasljeđivanje je postupak u kojem jedan objekt automatski stječe sva svojstva i ponašanja svog nadređenog objekta. Možete ponovo koristiti, proširiti ili modificirati atribute i ponašanja koja su definirana u drugoj klasi. naziva se klasa koja nasljeđuje članove druge klase izvedena klasa a klasa čiji su članovi naslijeđeni naziva se baza razred. Izvedena klasa je specijalizirana klasa za osnovnu klasu.

Primjer za nasljeđivanje na jednoj razini

pomoću prostora imena sistema RectangleApplication {klasa Pravokutnik {zaštićena dvostruka dužina zaštićena dvostruka širina public Rectangle (double l, double w) {length = l width = w} public double GetArea () {return length * width} public void Display () {Console. WriteLine ('Length: {0}', length) Console.WriteLine ('Width: {0}', width) Console.WriteLine ('Area: {0}', GetArea ())}} class Tabletop: Rectangle {private dvostruki trošak javni Stolni (dvostruki l, dvostruki w): osnovni (l, š) {} javni dvostruki GetCost () {dvostruki trošak = GetArea () * 70 povratni trošak} javna praznina Display () {base.Display () Konzola .WriteLine ('Cost: {0}', GetCost ())}} class ExecuteRectangle {static void Main (string [] args) {Tabletop t = new Tabletop (4.5, 7.5) t.Display () Console.ReadLine () }}}

//Izlaz:

Duljina: 4,5
Širina: 7,5
Površina: 33,75
Cijena: 2362,5

Primjer nasljeđivanja na više razina

pomoću prostora imena sistema InheritanceApplication {Oblik klase {javna praznina setWidth (int w) {širina = w} javna praznina setHeight (int h) {visina = h} zaštićena int širina zaštićena int visina} javno sučelje PaintCost {int getCost (int area)} klasa Pravokutnik: Oblik, PaintCost {public int getArea () {return (širina * visina)} public int getCost (int area) {return area * 70}} class RectangleTester {static void Main (string [] args) {Rectangle Rect = novi Rectangle () int područje Rect.setWidth (5) Rect.setHeight (7) area = Rect.getArea () Console.WriteLine ('Ukupna površina: {0}', Rect.getArea ()) Console.WriteLine ('Ukupno trošak boje: $ {0} ', Rect.getCost (area)) Console.ReadKey ()}}}

//Izlaz:

Ukupna površina: 35
Ukupni trošak boje: 2450 USD

Preopterećenje

Preopterećenje je situacija u kojoj imamo dva ili člana prijavljena pod istim imenom. Preopterećenje je moguće i kada deklariramo dvije ili više metoda s istim imenom. Provjerimo primjere oba.

Preopterećenje članova

Primjer:

koristeći System public class Edureka {public static int add (int a, int b) {return a + b} public static int add (int a, int b, int c) {return a + b + c}} public class TestMemberOverloading { javna statička praznina Main () {Console.WriteLine (Edureka.add (12, 23)) Console.WriteLine (Edureka.add (12, 23, 25))}}

//Izlaz:

35
60

Preopterećenje metode

Primjer:

pomoću System javne klase Edureka {public static int add (int a, int b) {return a + b} public static float add (float a, float b) {return a + b}} public class TestMemberOverloading {public static void Main ( ) {Console.WriteLine (Edureka.add (12, 23)) Console.WriteLine (Edureka.add (12.4f, 21.3f))}}

//Izlaz:

35
33,699997

Nadjačavanje

Nadjačavanje je situacija kada podređena klasa definira istu metodu koju definira i roditelj. Shvatimo to na malom primjeru.

Primjer:

koristeći System public class Edureka {public virtual void eat () {Console.WriteLine ('Eating')}} public class Dog: Edureka {public override void eat () {Console.WriteLine ('Eating food')}} public class Overriding {javna statička praznina Glavna () {Pas d = novi Pas () d.eat ()}}

//Izlaz:

Jesti hranu

Prostor imena

The prostor imena u osnovi se koristi za obradu više klasa prisutnih u programu. Prostor imena dostupan je na različite načine.

  • System.Console: Evo, Sustav postaje prostor imena
  • Da bismo pristupili klasi prostora imena, trebamo koristiti namespacename.classname.
  • Možemo koristiti koristeći ključna riječ.

Primjer:

koristeći System koristeći First koristeći Second namespace First {javna klasa Edureka {public void sayWelcome () {Console.WriteLine ('Welcome To Edureka')}}} prostor imena Drugi {public class Happy_Learning {public void sayWishes () {Console.WriteLine (' Sretno učenje ')}}} javni prostor imena klase {javna statička praznina Glavna () {Edureka h1 = nova Edureka () Happy_Learning w1 = nova Happy_Learning () h1.sayWelcome () w1.sayWishes ()}}

//Izlaz:

Dobrodošli u Edureku
Sretno učenje

Datoteke

The rad s datotekama dostupni u C # su kako slijedi:

Operacija Opis
BinaryReader Čita primitivne podatke iz binarnog toka.
BinaryWriter Zapisuje primitivne podatke u binarnom formatu.
Puferirani tok Privremena pohrana za tok bajtova.
Imenik Pomaže u manipulaciji strukturom direktorija.
DirectoryInfo Koristi se za izvođenje operacija na direktorijima.
DriveInfo Pruža informacije o pogonima.
Datoteka Pomaže u manipulaciji datotekama.
FileInfo Koristi se za izvođenje operacija nad datotekama.
FileStream Koristi se za čitanje i pisanje na bilo koje mjesto u datoteci.
MemoryStream Koristi se za nasumični pristup protočnim podacima pohranjenim u memoriji.
Staza Izvodi operacije na informacijama o putu.
StreamReader Koristi se za čitanje znakova iz bajt toka.
StreamWriter Koristi se za upisivanje znakova u stream.
StringReader Koristi se za čitanje iz međuspremnika niza.
StringWriter Koristi se za upisivanje u međuspremnik niza.

FileMode

The FileMode je popisivač koji definira više metoda otvaranja datoteka. Članovi FileMode Enumeratora opisani su kako slijedi:

  • Dodati: Otvara postojeću datoteku i stavlja kursor na kraj datoteke ili stvara datoteku ako datoteka ne postoji.
  • Stvoriti: Dizajniran je za stvaranje nove datoteke.
  • CreateNew: Dizajniran je kako bi odredio operativnom sustavu da treba stvoriti novu datoteku.
  • Otvoren: Dizajniran je za otvaranje postojeće datoteke.
  • OpenOrCreate: Dizajniran je da specificira operativni sustav da treba otvoriti datoteku ako postoji, inače bi trebao stvoriti novu datoteku.
  • Skratiti: Truncate otvara postojeću datoteku i skraćuje njezinu veličinu na nula bajtova.

Pristup datoteci

Pristup datoteci Popisivač se koristi za dobivanje pristupa određenoj datoteci. Ima sljedeće članove.

  • Čitati
  • Pisati
  • ReadWrite

Dijeljenje datoteka

The Datoteka Popisivač se koristi za dijeljenje određene datoteke. Ima sljedeće članove.

  • Nasljedivo: Nasljedivo omogućuje rukovanju datotekama da prenese nasljedstvo podređenim procesima.
  • Nijedno: Nijedna ne odbija dijeljenje trenutne datoteke
  • Čitati: Čitanje omogućuje otvaranje datoteke za čitanje.
  • ReadWrite: ReadWrite omogućuje otvaranje datoteke za čitanje i pisanje.
  • Pisati: Write omogućuje otvaranje datoteke za pisanje.

Događaji

Događaj je općenito poznat kao radnja koju generira korisnik. To bi mogao biti klik miša, pa čak i jedan pritisak tipke na tipkovnici. Slično tome, programi C # također imaju događaje. Generator događaja naziva se izdavač a primatelj događaja naziva se pretplatnik.

datum tipa podataka u primjeru sql

Izdavač

DO izdavač sadrži definiciju događaja i delegata. The događaj-delegat u ovom je objektu definirana asocijacija. A izdavač objekt klase poziva događaj i o njemu se obavještavaju drugi objekti.

Pretplatnik

DO pretplatnik prihvaća događaj i pruža rukovatelj događajima. The delegat u klasi izdavača poziva metodu / događaj rukovatelj pretplatničke klase.

Primjer:

pomoću prostora imena sistema Edureka {javni delegat string Del (string str) class EventBlock {event Del NewEvent public EventBlock () {this.NewEvent + = new Del (this.WelcomeUser)} javni niz WelcomeUser (string korisničko ime) {return 'Dobrodošli u Edureku . '+ korisničko ime} static void Main (string [] args) {EventBlock obj1 = new EventBlock () string result = obj1.NewEvent (' Happy Learning ') Console.WriteLine (rezultat)}}}

//Izlaz:

Dobrodošli u Edureku. Sretno učenje

Generički lijekovi

Generički lijekovi je koncept pružanja članova i metoda klase držačima mjesta u Vrijeme izvođenja. Generike možemo definirati pomoću zagrade. Provjerimo sljedeće primjere.

Generičari u razredu

koristeći System namespace Edureka {class GenericClass {public GenericClass (T msg) {Console.WriteLine (msg)}} class Program {static void Main (string [] args) {GenericClass gen = new GenericClass ('Ova poruka je iz generičke klase' ) GenericClass genI = novi GenericClass (123) GenericClass getCh = novi GenericClass ('E')}}}

//Izlaz:

Ova je poruka iz generičke klase
123
JE

Generički lijekovi u metodi

pomoću prostora imena sistema 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 poruka je iz generičke metode ') genC.Show (321) genC.Show (' H ')}}}

//Izlaz:

Ova je poruka generička metoda
321
H

Delegati

The Delegat djeluje kao referenca na metodu. U osnovi je isto kao i pokazivač funkcije u C i C ++, ali daleko bolji i sigurniji za tip. Delegat u statička metoda enkapsulira samo metodu. Dok je delegat u primjer metoda obuhvaća i metodu i instancu. Najbolje je koristiti delegata kao događaj.

Primjer:

koristeći delegat sustava int Kalkulator (int n) javna klasa Edureka {statički int broj = 25 javni statički int dodati (int n) {broj = broj + n povratni broj} javni statički int mul (int n) {broj = broj * n povratak broj} javni statički int getNumber () {povratni broj} javna statička praznina Glavna (string [] args) {Kalkulator c1 = novi kalkulator (dodaj) Kalkulator c2 = novi kalkulator (mul) c1 (20) Console.WriteLine ('Nakon kalkulatora jedan delegat, novi broj je: '+ getNumber ()) c2 (3) Console.WriteLine (' Nakon delegata dva kalkulatora, novi broj je: '+ getNumber ())}}

//Izlaz:

Nakon jednog delegata kalkulatora, novi broj je: 45
Nakon delegiranja dva kalkulatora, novi broj je: 135

Odraz

Refleksija je potrebna za dobivanje metapodataka u vremenu izvođenja. Referenca je dostupna u Sustav.Reflection prostor imena. Za izvršavanje su potrebne sljedeće klase.

  • Tip
  • MemberInfo
  • ConstructorInfo
  • MethodInfo
  • FieldInfo
  • PropertyInfo
  • TypeInfo
  • EventInfo
  • Modul
  • Skupština
  • AssemblyName
  • Pokazivač

Tip klase

C # Type klasa predstavlja deklaracije tipa za tipove klasa, tipove sučelja, tipove nabrajanja, tipove polja, tipove vrijednosti

Svojstva tipa

Popis važnih svojstava klasa Tipova naveden je u nastavku.

Vlasništvo Opis
Skupština Dobiva skupštinu za ovu vrstu.
AssemblyQualifiedName Dobiva kvalificirani naziv za skupinu za ovu vrstu.
Atributi Dobiva atribute povezane s vrstom.
Osnovni tip Dobiva osnovni ili nadređeni tip.
Puno ime Dobiva potpuno kvalificirano ime vrste.
IsApstraktno koristi se za provjeru je li vrsta Sažetak.
IsArray koristi se za provjeru je li vrsta Array.
IsClass koristi se za provjeru je li vrsta Class.
IsEnum koristi se za provjeru je li vrsta Enum.
IsInterface koristi se za provjeru je li vrsta Interface.
IsNested koristi se za provjeru je li vrsta ugniježđena.
IsPrimitive koristi se za provjeru je li vrsta primitivna.
IsPointer koristi se za provjeru je li vrsta Pointer.
IsNotPublic koristi se za provjeru nije li vrsta javna.
IsPublic koristi se za provjeru je li vrsta Javna.
IsSeated koristi se za provjeru je li vrsta zapečaćena.
Je li moguće sterilizirati koristi se za provjeru je li tip moguće serializirati.
Vrsta člana koristi se za provjeru je li vrsta vrsta člana ugniježđenog tipa.
Modul Dobiva modul tipa.
Ime Dobiva ime tipa.
Prostor imena Dohvaća prostor imena tipa.
Vlasništvo Opis
GetConstructors () Vraća sve javne konstruktore za Tip.
GetConstructors (BindingFlags) Vraća sve konstruktore za tip s navedenim BindingFlags.
GetFields () Vraća sva javna polja za Tip.
GetFields (BindingFlags) Vraća sve javne konstruktore za tip s navedenim BindingFlags.
Dobiti članove () Vraća sve javne članove za Tip.
GetMembers (BindingFlags) Vraća sve članove za tip s navedenim BindingFlags.
GetMethods () Vraća sve javne metode za Tip.
GetMethods (BindingFlags) Vraća sve metode za Tip s navedenim BindingFlags.
GetProperties () Vraća sva javna svojstva za Tip.
GetProperties (BindingFlags) Vraća sva svojstva za tip s navedenim BindingFlags.
GetType () Dohvaća trenutni tip.
GetType (niz) Dobiva tip za dano ime.

Primjeri refleksije:

Dohvati tip

Primjer:

pomoću sistemske javne klase GetType {public static void Main () {int a = 10 Type type = a.GetType () Console.WriteLine (type)}}

//Izlaz:

System.Int32

Nabavite skupštinu

Primjer:

koristeći System koristeći System.Reflection javnu klasu GetAssembly {javna statička void Main () {Type t = typeof (System.String) Console.WriteLine (t.Assembly)}}

//Izlaz:

System.Private.CoreLib, Verzija = 4.0.0.0, Kultura = neutralna, PublicKeyToken = 7cec85d7bea7798e

Informacije o vrsti ispisa

Primjer:

pomoću sustava pomoću System.Reflection javne klase PrintType {public static 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)}}

//Izlaz:

Pravi
Lažno
Lažno

Konstruktori za ispis

Primjer:

koristeći System koristeći System.Reflection javnu klasu PrintConstructors {public static void Main () {Type t = typeof (System.String) Console.WriteLine ('Konstruktori {0} tipa ...', t) ConstructorInfo [] ci = t .GetConstructors (BindingFlags.Public | BindingFlags.Instance) foreach (ConstructorInfo c in ci) {Console.WriteLine (c)}}}

//Izlaz:

Konstruktori tipa System.String ...
Void .ctor (Char [])
Void .ctor (Char [], Int32, Int32)
Praznina .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 ispisa

Primjer:

koristeći System pomoću System.Reflection javne klase PrintMethods {public static void Main () {Type t = typeof (System.String) Console.WriteLine ('Metode {0} type ...', t) MethodInfo [] ci = t .GetMethods (BindingFlags.Public | BindingFlags.Instance) foreach (MethodInfo m in ci) {Console.WriteLine (m)}}}

//Izlaz:

Metode tipa System.String ...
Zamijenite System.String (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) ......

Ispisna polja

Primjer:

koristeći System koristeći System.Reflection javnu klasu 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)}}}

//Izlaz:

Polja tipa System.String ...
System.String Empty

Sada ćemo prijeći na neke napredne koncepte programiranja za C #

Napredni koncepti C #

Anonimna funkcija

Poziva se funkcija kojoj nedostaje određeno ime Anonimno Funkcije. Postoje dvije vrste anonimnih funkcija dostupne u C #

  • Lambda izrazi
  • Anonimne metode

Primjer:

pomoću prostora imena sistema 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)}}}

//Izlaz:

Kvadrat: 625

Anonimne metode

The anonimna metoda pruža istu funkcionalnost kao i lambda izraz, osim što nam omogućuje zanemarivanje popisa parametara.

Primjer:

pomoću prostora imena sistema AnonymousMethods {class Program {javni delegat void AnonymousFun () static void Main (string [] args) {AnonymousFun fun = delegate () {Console.WriteLine ('Ovo je anonimna funkcija')} zabava ()}}}

//Izlaz:

Ovo je anonimna funkcija

Višestruki navoj

Višenitnost je postupak u kojem se stvara više niti koji se dodjeljuju za različite zadatke. ovo štedi vrijeme izvršavanjem više poslova istovremeno. Klasa višenitnosti dostupna je u Sustav.Nitanje prostor imena.

System.Threading prostor imena

The Sustav.Nitanje imenski prostor sadrži klase i sučelja za olakšavanje višestruke obrade niti. Pruža klase za sinkronizaciju resursa niti. Popis najčešće korištenih klasa dan je u nastavku:

  • Nit
  • Mutex
  • Tajmer
  • Monitor
  • Semafor
  • ThreadLocal
  • ThreadPool
  • Hlapljiv

Proces i nit

Proces je zapravo i primjena a smatra se da je a teškaš komponenta. S druge strane, nit je jedna jedina modul cijele aplikacije. to je lagana u usporedbi s postupkom

Životni ciklus niti

Svaka nit ima životni ciklus. Životni ciklus niti definiran je u klasi System.Threading.Thread. Slijede faze u životnom ciklusu bilo koje niti.

  • Nepokrenuto
  • Izvodljivo (spremno za pokretanje)
  • Trčanje
  • Nije moguće pokrenuti
  • Mrtav

Klasa Thread pruža sljedeća svojstva i metode kako slijedi.

Svojstva niti

Vlasništvo Opis
CurrentThread vraća instancu trenutno pokrenute niti.
Živ je provjerava je li trenutna nit živa ili nije.
IsBackground Da biste dobili / postavili vrijednost trenutne niti u pozadini je ili nije.
ManagedThreadId koristi se za dobivanje jedinstvenog ID-a za trenutno upravljanu nit.
Ime koristi se za dobivanje ili postavljanje imena trenutne niti.
Prioritet koristi se za dobivanje ili postavljanje prioriteta trenutne niti.
ThreadState koristi se za vraćanje vrijednosti koja predstavlja stanje niti.

Metode navoja

Metoda Opis
Abortus() koristi se za završavanje niti. Pokreće ThreadAbortException.
Prekinuti() koristi se za prekidanje niti koja je u stanju WaitSleepJoin.
Pridružiti() koristi se za blokiranje svih pozivajućih niti sve dok se ta nit ne završi.
ResetAbort () koristi se za otkazivanje zahtjeva za prekidom za trenutnu nit.
Nastavi () koristi se za nastavak ovješene niti. Zastario je.
Spavanje (Int32) koristi se za suspendiranje trenutne niti na određene milisekunde.
Početak() mijenja trenutno stanje niti u Runnable.
Obustaviti() suspendira trenutnu nit ako nije suspendirana. Zastario je.
Prinos() koristi se za izvršavanje trenutne niti na drugu nit.

Primjer glavne niti

koristeći System koristeći System.Threading javnu klasu Edureka {public static void Main (string [] args) {Thread t = Thread.CurrentThread t.Name = 'MainThread' Console.WriteLine (t.Name)}}

//Izlaz:

MainThread

Rukovanje iznimkama

The iznimka je pogreška koju je program izbacio u svom izvođenju. Obavljamo rukovanje iznimkama kako bismo izuzetak učinili besplatnim.

Iznimka Opis
System.DivideByZeroException Pogreška generirana dijeljenjem broja s nulom.
System.NullReferenceException obrađuje pogrešku generiranu referencom na null objekt.
System.InvalidCastException obrađuje pogrešku generiranu nevaljanim slanjem tipova.
System.IO.IOException obrađuje pogreške ulaza / izlaza.
System.FieldAccessException Pogreška generirana nevaljanim privatnim / zaštićenim pristupom.

U C # za izvedbu koristimo 4 ključne riječi rukovanje iznimkama:

  • probati
  • ulov
  • napokon i
  • bacanje
Primjer:
koristeći javnu klasu System EdurekExample {javna statička praznina Main (string [] args) {try {int a = 10 int b = 0 int x = a / b} catch (Exception e) {Console.WriteLine (e)} Console.WriteLine ('Ova je poruka iz bloka catch')}}

//Izlaz:

System.DivideByZeroException: Pokušaj dijeljenja s nulom.
na ExExaEdurekample.Main (string [] args) u F: C # TutorialC # ProgramsConsoleApp1ConsoleApp1Program.cs: redak 10
Ova je poruka iz bloka catch

Primjer prilagođene iznimke

koristeći javnu klasu sustava InvalidAgeException: Iznimka {public InvalidAgeException (String message): base (message) {}} javna klasa Prilagođeno {static void validate (int age) {if (age<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.') } } 

//Izlaz:

InvalidAgeException: Žao nam je, očekuje se da će dob biti veća od 18 godina
na Customized.validate (Int32 dob) u F: C # TutorialC # ProgramsConsoleApp1ConsoleApp1Program.cs: redak 18
na Customized.Main (string [] args) u F: C # TutorialC # ProgramsConsoleApp1ConsoleApp1Program.cs: red 23
Blok ulova se sada izvršava.

Napokon primjer bloka

pomoću sistemske javne klase FinalExecption {public static void Main (string [] args) {try {int a = 10 int b = 0 int x = a / b} catch (Exception e) {Console.WriteLine (e)} konačno {Console .WriteLine ('Napokon se izvršava blok')} Console.WriteLine ('Blok hvatanja se izvršava')}}

//Izlaz:

System.DivideByZeroException: Pokušaj dijeljenja s nulom.
na FinalExecption.Main (String [] args) u F: C # TutorialC # ProgramsConsoleApp1ConsoleApp1Program.cs: red 10
Napokon se izvršava blok
Blok ulova se izvršava

Potpis iznimke sustava

[SerializableAttribute] [ComVisibleAttribute (true)] javna klasa SystemException: Iznimka

Konstruktori za iznimke sustava

Graditelj Opis
SystemException () Koristi se za inicijalizaciju nove instance klase SystemException.
SystemException

(SerializationInfo, StreamingContext)

Koristi se za inicijalizaciju nove instance klase SystemException serializiranim podacima.
SystemException (niz) Koristi se za inicijalizaciju nove instance klase SystemException s navedenom porukom o pogrešci.
SystemException (niz, iznimka) Koristi se za inicijalizaciju nove instance klase SystemException s navedenom porukom pogreške i referencom na unutarnju iznimku koja je uzrok ove iznimke.

Svojstva iznimke sustava

Vlasništvo Opis
Podaci Koristi se za dobivanje kolekcije parova ključ / vrijednost koji pružaju dodatne korisnički definirane informacije o iznimci.
HelpLink Koristi se za dobivanje ili postavljanje veze do datoteke pomoći povezane s ovom iznimkom.
HResult Koristi se za dobivanje ili postavljanje HRESULT, kodirane numeričke vrijednosti koja se dodjeljuje određenoj iznimci.
InnerException Koristi se za dobivanje instance Exception koja je uzrokovala trenutnu iznimku.
Poruka Koristi se za dobivanje poruke koja opisuje trenutnu iznimku.
Izvor Koristi se za dobivanje ili postavljanje naziva aplikacije koja uzrokuje pogrešku.
StackTrace Upotrebljava se za dobivanje niza prikaza neposrednih okvira na stogu poziva.
TargetSite Koristi se za dobivanje metode koja baca trenutnu iznimku.

Metode izuzeća sustava

Metode Opis
Jednako (objekt) Koristi se za provjeru je li navedeni objekt jednak trenutnom objektu ili nije.
Dovršiti () Koristi se za oslobađanje resursa i obavljanje operacija čišćenja.
GetBaseException () Koristi se za dobivanje root iznimke.
GetHashCode () Koristi se za dobivanje hash koda.
GetObjectData

(SerializationInfo, StreamingContext)

Koristi se za dobivanje podataka o objektu.
GetType () Koristi se za dobivanje vrste izvođenja trenutne instance.
MemberwiseClone () Koristi se za stvaranje plitke kopije trenutnog Objekta.
ToString () Upotrebljava se za stvaranje i vraćanje niznog prikaza trenutne iznimke.

Primjer iznimke sustava

pomoću prostora imena sistema CSharpProgram {class SystemExceptionExample {static void Main (string [] args) {try {int [] arr = new int [5] arr [10] = 25} catch (SystemException e) {Console.WriteLine (e)} }}}

//Izlaz:

System.IndexOutOfRangeException: Indeks je bio izvan granica polja.
na CSharpProgram.SystemExceptionExample.Main (String [] args) u F: C # TutorialC # ProgramsConsoleApp1ConsoleApp1Program.cs: line 11

Sinkronizacija

Sinkronizacija može biti tehnika koja omogućuje samo 1 niti da pristupi resursu određeno vrijeme. Nijedna alternativna nit neće prekidati dok imenovana nit ne završi svoj zadatak.

U programu s više niti mogu se koristiti nitiza pristup bilo kojem resursu zaodređeno izvršenjevrijeme. Niti dijele resurse i izvršavaju se asinkrono. Pristup zajedničkim resursima (podacima)može biti važan zadatakto općenitomogao zaustavitisustav.imamo tendenciju utjecati na tostvaranjem niti na sinkroni način.

Primjer bez sinkronizacije

pomoću sustava koristeći System.Threading klasa 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() } } 

//Izlaz:

jedan
jedan
2
2
3
3
4
4
5
5
6
6
7
7
8
8
9
9
10
10

Primjer sa sinkronizacijom

pomoću sustava koristeći System.Threading klasa 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() } } 

//Izlaz:

jedan
2
3
4
5
6
7
8
9
10
jedan
2
3
4
5
6
7
8
9
10

Nove značajke

Microsoft je jeziku C # dodao mnoge najnovije značajke, neke od njih su navedene u nastavku.

C # 6.0

  • Korištenje statičke direktive
  • Filtri za iznimke
  • Čeka se ulov / konačno blokovi
  • Automatski pokretači svojstava
  • Zadane vrijednosti za svojstva samo gettera
  • Članovi izraženi tijelom
  • Nulti propagator
  • Interpolacija niza
  • Ime operatora
  • Rječnik inicijalizator
  • Prevoditelj kao usluga (Roslyn)

C # 7,0

  • Podudaranje uzoraka
  • Korijeni
  • Dekonstrukcija
  • Lokalne funkcije
  • Razdjelnik znamenki
  • Binarni literali
  • Ref se vraća i mještani
  • Izraziti konstruktori i finalizatori
  • Dobivači i postavljači izraženih tijela
  • Out varijable
  • Općeniti asinkroni tipovi povrata

C # 7.1

  • Async glavni
  • Zadani izrazi

Pitanja za intervju temeljena na C #

Važna pitanja za intervjue temeljena na programskom jeziku C # nalaze se u ovom ažuriranom tekstu .

Ovim smo došli do kraja ovog članka 'Vodič za C #'. Nadam se da ste shvatili važnost struktura podataka, sintakse, funkcionalnosti i operacija izvedenih pomoću njih. Sad kad ste kroz ovo shvatili osnove programiranja u C #Vodič za C #, provjerite pružena obuka Edureka o mnogim tehnologijama poput Jave, Proljeće i mnogiviše, pouzdana tvrtka za internetsko učenje s mrežom od više od 250 000 zadovoljnih učenika raširenih širom svijeta dobila je pitanje za nas? Spomenite to u odjeljku za komentare ovog bloga 'Vodič za C #', a mi ćemo vam se javiti u najkraćem mogućem roku.