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 #
- Objektno orijentirano programiranje
- Napredni koncepti C #
- Pitanja za intervju temeljena na C #
Osnove C #
- Uvod u programski jezik C #
- Značajke programskog jezika C #
- Montaža
- Struktura programa C #
- Tipovi podataka
- Varijable
- Operateri
- Petlje
- Uvjetovano
- Žice
- Nizovi
- Zbirke
- Struktura
- Funkcije
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.
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:
- Ako izjava
- Izjava ako-drugo
- Ugnježdena izjava If-else
- Ako-drugo Ako ljestve
- 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 StringPrimjer:
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
NizoviSlič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 nizaPrimjer:
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
5
Akaš
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 rekurzivanpomoć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
Vrijednost
nakon 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 #
- Pristup objektno orijentiranom programiranju
- Preopterećenje i nadjačavanje
- Prostor imena
- Datoteke
- Događaji
- Generički lijekovi
- Delegati
- Odraz
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 sqlIzdavač
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:
Primjer:
- probati
- ulov
- napokon i
- bacanje
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: IznimkaKonstruktori 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
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.