C # Tutorial: Noțiunile de bază pe care trebuie să le stăpânești C #



Acest articol despre tutorialul C # vă va ajuta cu o cunoaștere detaliată despre fondurile C # împreună cu exemple în timp real pentru o mai bună înțelegere.

C # este un limbaj de programare universal și robust dezvoltat de Microsoft Corporation în anul 2000 ca un concurent mortal pentru Java. Este cel mai popular și un limbaj de programare dominant atunci când vine vorba atât de dezvoltare web, cât și de dezvoltare de aplicații desktop.

În acest tutorial C #, vom învăța următoarele concepte.





C # Noțiuni de bază

Introducere în limbajul de programare C #

La începutul anilor 90, Java era limbajul de programare de vârf pentru dezvoltarea web, dezvoltarea aplicațiilor desktop și multe alte domenii. Microsoft a dorit să vină cu un concurent cu multe funcții avansate care pot lăsa Java în urmă.



C#-Tutorial-hejlsberg_bio

A fost în anul 2000, Anders Hejlsberg iar echipa sa Microsoft a venit cu ideea C # numită popular C-Sharp. Această inițiativă a fost aprobată de Organizația pentru Standarde Internaționale (MAJOR) și Asociația Producătorilor de Calculatoare Europene (ECMA). și în cele din urmă, C # intră în lumea dezvoltării de software.

Caracteristicile limbajului de programare C #



  • Limbaj de programare orientat pe obiecte

Abordarea de programare orientată pe obiecte este ceea ce face ca C # ascuțit să fie cel mai ușor de programat și mai ușor de dezvoltat și menținut limbajul de programare.

  • Limbaj tip sigur

Semnificația de tip sigur este că compilatorului i se va oferi acces doar la locația de memorie care are permisiunea de a executa. Această caracteristică îmbunătățește siguranța codului la un nivel exponențial.

  • Interoperabilitate

Caracteristica interoperabilității face ca C # să fie suficient de capabil să facă tot ce este nativ pentru C ++ într-un mod mai eficient, care poate depăși C ++ în sine.

  • Biblioteca bogată

C # oferă acces la mai multe numere de biblioteci încorporate care oferă funcționalități preprogramate pentru a reduce timpul petrecut în procesul de dezvoltare.

  • Scalabil și actualizabil

C # a fost conceput pentru a fi superior printre celelalte limbaje de programare. Prin urmare, este întotdeauna deschis la actualizări și se menține foarte scalabil cu caracteristicile sale.

  • Orientat pe componente

Dezvoltatorii de la Microsoft au folosit abordarea bazată pe componente pentru a dezvolta C #. Aceasta este cea mai predominantă metodologie de dezvoltare pentru a menține C # foarte scalabil și actualizat.

  • Limbaj structurat

Abordarea programării structurate este preferată pe parcursul ciclului de viață al dezvoltării software-ului, deoarece devine ușor să dezvolți compilarea și implementarea software-ului în comparație cu abordarea de programare orientată pe proceduri.

  • Rapid

Programarea C # se întâmplă să fie mai rapidă în compilare și execuție în comparație cu C ++ și alte limbaje de programare.

Instalare

Este dovedit că Microsoft Visual Studio este cel mai bun editor din clasă pentru programare C #. Vom instala și configura Microsoft Visual Studio pentru executarea programelor noastre C # urmând pașii menționați mai jos:

Pasul 1 : Descărcați Microsoft Visual Studio

Google pentru ultima versiune a Visual Studio și descărcați fișierul instalare fișier în sistemul dvs. local și apoi alerga fișierul de instalare ca un administrator.

Pasul 2: Selectați pachetul de dezvoltare .NET pentru desktop

Odată ce rulați programul de instalare, Editorul Visual Studio va fi descărcat cu succes în sistemul dvs. local, ulterior o fereastră de dialog va fi afișată pe ecranul desktopului, solicitându-i pachet special ai nevoie în sistemul tău. Aici, trebuie să selectați Dezvoltare desktop .NET pachet.

Pasul 3: Setați mediul C #

Odată ce pachetele pentru Dezvoltare .NET sunt descărcate, apoi o altă fereastră de dialog va fi afișată pe ecran, solicitând mediul de dezvoltare pe care îl căutați. Aici, trebuie selectați mediul pentru C #.

Pasul 4: Creați-vă primul proiect

Odată ce mediul este setat, sunteți bine să mergeți. Porniți Visual Studio și selectați creați un proiect nou din caseta de dialog afișată.

Veți fi redirecționat către următoarea casetă de dialog și acolo trebuie să selectați Biblioteca de clase ca .NET Standard așa cum se arată mai jos.

În următoarea casetă de dialog vi se va cere Configurați-vă proiectul . Configurați-l și vă aflați acum în Editor. Scrieți-vă primul program și alerga aceasta. Ieșirea va fi afișată cu succes pe Prompt de comandă.

folosind clasa de sistem Edureka {static void Main (șir [] args) {Console.WriteLine ('Bine ați venit la Edureka !, Happy Learning ..!')}}

// Ieșire:

Să executăm primul nostru program C #.

Structura programului C #

Acum că am executat primul nostru program C #, să ne înțelegem structura în detaliu. Un program simplu C # are următoarele părți.

folosind spațiul de nume al sistemului ConsoleApplication1 {public class Edureka {public static void Main (șir [] args) {Console.WriteLine ('Bine ați venit la Edureka !, Happy Learning ..!')}}}

// Ieșire:

Bine ați venit la Edureka !, Happy Learning ..!

  • clasă: clasa poate fi în general definită ca a cuvânt cheie care este folosit pentru a defini o clasă în programul C #.
  • Edureka: Este numele Clasă. Clasa este adesea considerată ca un plan care stochează membrii și metodele legate de clasă.
  • Principal: Practic este metoda primară a întregului program C #, acționează ca poarta de intrare pentru controlul de a intra în program. Este executat înainte ca orice altă metodă a programului să fie executată.
  • nul: Acest segment al codului este desemnat la tip retur a metodei. Poate fi orice alt tip de date decât nul. Nula înseamnă că metoda nu are date returnate din aceasta.
  • static: Acesta este un cuvânt cheie care spune că membrii de date declarați sunt statici și o memorie dedicată a fost alocată membrilor declarați.
  • String [] argumentează: Seamănă cu argumentele din linia de comandă pe care le folosim în programul nostru. În timp ce ne executăm programul, practic trecem câteva argumente, care va fi acceptat de program datorită acestei declarații.
  • System.Console.WriteLine („Bine ați venit la Edureka !, Happy Learning ..!”) Aici, Sistem este spațiu de nume. Consolaeste că categoria conturatăîn spațiul de nume al sistemului. WriteLine () este căstatictehnicăde Consolăcategorie care este folosită pentru notaretextul de pe consolă.

Acum, să învățăm tipurile de date disponibile în C #.

Tipuri de date

Tipurile de date din C # sunt împărțite în trei categorii, descrise mai jos.

Tipuri de date de valoare

Tipuri de date de valoare sunt situate în System.ValueType Biblioteca și sunt întotdeauna gata să fie accesate direct, iar variabilele pot fi atribuite direct unei anumite valori. Tipurile de date valorice sunt clasificate în continuare în două tipuri, după cum se arată mai jos:

  • Tipuri de date predefinite
  • Tipuri de date definite de utilizator

Tipuri de date predefinite: Acestea sunt cele pe care le folosim în mod normal în programarea noastră de zi cu zi. Aceste tipuri de date sunt predefinite de dezvoltatorii de limbi și sunt ținute gata de utilizare pentru programatori.

Exemplu:

int, float, char, short double etc.

Tipuri de date definite de utilizator: Există situații în care s-ar putea să avem nevoie să stocăm valori diferite de tipuri de date într-o singură variabilă. În aceste cazuri, Tipuri de date predefinite nu sunt doar suficiente. Definit de utilizator Tipurile de date sunt ca tipurile de date personalizabile pentru utilizator.

Exemplu: Structură, Enum

Tip de date Gama memoriei alocate Capacitate de memorie
semnat char -128 până la 127 1 octet
char nesemnat De la 0 la 127 1 octet
char -128 până la 127 1 octet
semnat scurt -32.768 până la 32.767 2 octeți
scurt semnat De la 0 la 65.535 2 octeți
mic de statura -32.768 până la 32.767 2 octeți
semnat int -2.147.483.648 până la -2.147.483.647 4 octeți
nesemnat int 0 la 4.294.967.295 4 octeți
int -2.147.483.648 până la -2.147.483.647 4 octeți
semnat lung -9.223.372.036.854.775.808 la 9.223.372.036.854.775.807 8 octeți
nesemnat mult 0 la 18.446.744.073.709.551.615 8 octeți
lung -9.223.372.036.854.775.808 la 9.223.372.036.854.775.807 8 octeți
pluti 1,5 * 10-45 - 3,4 * 1038, (precizie de 7 cifre) 4 octeți
dubla 5.0 * 10-324 - 1.7 * 10308, (precizie de 15 cifre) 8 octeți
zecimal -7,9 * 10-28 - 7,9 * 1028, (precizie de 28 de cifre) 16 octeți


Pointer Datatype

Pointer Type este un tip de date simplu. Funcționalitatea sa este complet similară cu indicatoarele din C. Ele sunt concepute pentru a stoca adresa unui alt indicator.

float* ptr

Tipuri de date de referință

Numele se explică de la sine. Tipuri de date de referință de fapt nu stochează variabilele, în schimb, ele stochează valoarea de referință la acea variabilă specială. Cu alte cuvinte, ele stochează adresa variabilei reale.

Variabilele de referință sunt clasificate în trei tipuri diferite, după cum se menționează mai jos:

  • Tipul obiectului

Tipul de date obiect este disponibil în Sistem.Obiect Clasă.Obiectultipuripoate fiatribuitvalorile decelelalte tipuri,referinţătipuri, predefinit, definit de utilizatortipuri. Dar înaintemisiunevalori, necesită tip conversie.

obiect abc abc = 50 // aceasta se numește box
  • Tipul dinamic

Variabilele Dynamic Type sunt concepute pentru a stoca aproape toate tipurile de valori. Se numește Dynamic Type, deoarece verificarea de tip a valorilor are loc în timpul rulării

dinamic x = 10
  • Tipul șirului

Tipul de șir este disponibil în System.String clasă. Tipul de șir este conceput pentru a stoca literele șirului. Literalele șir sunt stocate în două forme îndouă forme

    • citat
    • @citat.
Șirul S = „Edureka”
  • @citat șirul literal arată
@ „Edureka”

Acum, să înțelegem variabilele.

Variabile

Variabilele sunt numele alocate pentru locația de memorie care stochează anumite date date de utilizator și acele date sunt ușor accesibile utilizând numele variabilei. Există cinci tipuri de variabile disponibile în C #

Tip Exemplu
Nul Date nule
Boolean Adevarat si fals
Întreg Int, Char, Byte, Short, Long
Pluti Float și Double
Zecimal Zecimal

Exemplu:

int a, b double x float p char abc

Reguli care trebuie respectate pentru a declara variabile în C #

  • O variabilă poate include alfabete, cifre și puncte de subliniere.
  • Un nume de variabilă poate începe doar cu un alfabet sau cu un subliniat.
  • Variabilele nu pot începe cu o cifră sau un caracter special.
  • Spațiile albe nu sunt permise între numele variabilei.
  • Cuvintele cheie rezervate nu pot fi utilizate ca nume de variabile.

Operatori

Un Operator poate fi definit ca un simbol special care explică computerul pentru a efectua o anumită Matematică sunt o Operație Logică pe un set de variabile. C # include o varietate de operatori menționați mai jos.

  • Operatori aritmetici
  • Operatori relaționali
  • Operatori logici
  • Operatori Bitwise
  • Operatori de misiune

Operatori aritmetici

Operator Exemplu Descriere
+ A + B Adaugă două operanzi
- A - B Scade două operande
* A * B Multipli doi operanzi
/ A / B Împarte două operande
% A% B Restul celor doi operanzi
++ A ++ Operațiune de creștere
- LA- Operațiune Decrement

Operatori relaționali

Operator Exemplu Descriere
== A == B Adevărat, dacă ambii operanzi sunt egali, Altfel Fals
! = A! = B Este adevărat, dacă ambii operanzi nu sunt egali, Altfel Fals
> A> B Este adevărat, dacă A este mai mare, altfel este fals
< LA Este adevărat, dacă B este mai mare, altfel este fals
> = A> = B Adevărat, dacă A este mai mare sau egal, Altfel Fals
<= LA<= B Adevărat, id-ul B este mai mare egal, Altfel Fals

Operatori logici

Operator Exemplu Descriere
&& A&&B Adevărat, dacă ambii operanzi sunt adevărați, Altfel Fals
|| A || B Adevărat, dacă unul dintre operanzi este adevărat, Altfel Fals
! A ! B Inversează starea logică a operandului

Operatori Bitwise

LA B A & B A | B A ^ B
unu unu unu unu 0
unu 0 0 unu unu
0 unu 0 unu unu
0 0 0 0 0
Operator Exemplu Descriere
~ (~ A) Operatorul de completare al lui Binary One este unar și are ca efect „flipping” de biți.
<< LA<<2 Operator binar stânga. Valoarea operandilor din stânga este mutată la stânga de numărul de biți specificat de operandul din dreapta.
>> A >> 2 Operator de schimbare dreapta binară. Valoarea operanzilor din stânga este deplasată la dreapta de numărul de biți specificat de operandul din dreapta.

Operatori de misiune

Operator Exemplu Descriere
= A = B + C A = B + C, B + C este atribuit lui A
+ = A + = B A = A + B, A + B este atribuit lui A
- = A - = B A = A-B, A-B este atribuit lui A
* = A - = B A = A * B, A * B este atribuit lui A
/ = A / = B A = A / B, A / B este atribuit lui A
% = A% = B A = A% B, A% B este atribuit lui A
<<= LA<<= 2 Operator stânga schimbare și atribuire
>> = A >> = 2 Operator de schimbare și atribuire dreapta
& = A & = 2 Operator Bitwise și Assignment
^ = A ^ = 2 Operator Bitwise Exclusive și Assignment
| = A! = 2 Operator Bitwise Inclusive și Assignment

Bucle

LA buclă declarația este utilizată pentru executarea unui bloc de instrucțiuni în mod repetat până când este îndeplinită o anumită condiție. Limbajul C # constă din următoarele declarații de buclă.

  • Pentru Loop
  • În timp ce Loop
  • Faceți în timp ce buclați

Pentru Loop

pentru bucla este folosit pentru a executa un anumit segment de cod de mai multe ori până când condiția dată este îndeplinită.

Sintaxă

pentru (creșterea / diminuarea condiției de inițializare) {// segment de cod}

Diagrama de flux:

Exemplu:

folosind System public class ForExample {public static void Main (șir [] args) {pentru (int i = 1 i<= 5 i++) { Console.WriteLine(i) } } } 

// Ieșire:

unu
2
3
4
5

În timp ce Loop

În timp ce bucla este folosit pentru a executa un segment de cod pentru mai multe numere de ori până când se îndeplinește o anumită condiție.

ce face tostring în java

Sintaxă

while (condiție) {// cod de executat}

Diagrama de flux:

Exemplu:

folosind bucle spațiu nume de sistem {clasă Program {static void Main (șir [] args) {int x = 5 while (x<= 10) { Console.WriteLine('The value of a: {0}', x) x++ } Console.ReadLine() } } } 

// Ieșire:

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

Faceți în timp ce buclați

Bucla Do while este complet similară cu Bucla While, dar singura diferență este că condiția este plasată la sfârșitul buclei. Prin urmare, bucla este executată cel puțin o dată.

Sintaxă

faceți {// codul de executat} în timp ce (condiție)

Diagrama de flux:

Exemplu:

folosind spațiul de nume al sistemului Edureka {clasa DoWhileLoop {public static void Main (șir [] args) {int i = 1, n = 5, produsul face {produs = n * i Console.WriteLine ('{0} * {1} = { 2} ', n, i, produs) i ++} while (i<= 10) } } } 

// Ieșire:

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

Condiţional

Declarații condiționate sunt folosite pentru a executa afirmație sau grup de declarații pe baza unor condiții. Dacă condiție este adevărat atunci Declarații C # sunt executate altfel următoarele afirmație va fi executat.

Diferite tipuri de enunțuri condiționate în limbajul C ++ sunt după cum urmează:

  1. Dacă afirmație
  2. Declarație If-Else
  3. Declarație imbricată If-else
  4. Dacă-altfel Dacă scară
  5. Declarație de comutare

Dacă afirmație

Singurul dacă declarația în limbajul C # este utilizată pentru a executa codul dacă o condiție este adevărată. Se mai numește și instrucțiune de selecție unidirecțională.

Sintaxă

if (expresie booleană) {// instrucțiuni executate dacă expresia booleană este adevărată}

Diagrama de flux:

Exemplu:

folosind spațiul de nume al sistemului Condițional {class IfStatement {public static void Main (șir [] args) {int number = 2 if (number<5) { Console.WriteLine('{0} is less than 5', number) } Console.WriteLine('This statement is always executed.') } } } 

// Ieșire:

2 este mai mic decât 5
Această declarație este întotdeauna executată.

Declarație If-Else

dacă-altfel declarația în limbajul C este utilizată pentru a executa codul dacă condiția este adevărată sau falsă. Se mai numește declarație de selecție bidirecțională.

Sintaxă

if (expresie booleană) {// instrucțiuni executate dacă expresia booleană este adevărată} else {// instrucțiuni executate dacă expresia booleană este falsă}

Diagrama de flux:

Exemplu:

folosind spațiul de nume al sistemului Condițional {class IfElseStatement {public static void Main (șir [] args) {int number = 12 if (number<5) { Console.WriteLine('{0} is less than 5', number) } else { Console.WriteLine('{0} is greater than or equal to 5', number) } Console.WriteLine('This statement is always executed.') } } } 

// Ieșire:

12 este mai mare sau egal cu 5
Această declarație este întotdeauna executată.

Declarație imbricată If-else

Cel cuibărit dacă-altfel declarația este utilizată atunci când un program necesită mai multe expresii de testare. Se mai numește o instrucțiune de selecție multi-way. Atunci când o serie de decizii sunt implicate într-o declarație, folosim dacă-altfel declarație în formă imbricată.

Sintaxă

if (expresie booleană) {if (expresie imbricată-1) {// cod de executat} else {// cod de executat}} else {if (expresie imbricată-2) {// cod de executat } else {// cod de executat}}

Diagrama de flux:

Exemplu:

folosind spațiul de nume al sistemului Condițional {clasă Cuibărit {public static void Principal (șir [] args) {int primul = 7, al doilea = -23, al treilea = 13 if (primul & gt al doilea) {if (primul

// Ieșire:

13 este cel mai mare

Altfel-dacă Scară

if-else-if declarația este utilizată pentru a executa un cod din mai multe condiții. Se mai numește declarație de decizie multipath. Este un lanț de afirmații if..else în care fiecare afirmație if este asociată cu afirmația if if și ultima ar fi o afirmație else.

Sintaxă

if (condiție1) {// cod de executat dacă condiția1 este adevărată} else if (condiție2) {// cod de executat dacă condiția2 este adevărată} else if (condiție3) {// cod de executat dacă condiția3 este adevărată} ... altfel {// codul trebuie executat dacă toate condițiile sunt false}

Diagrama de flux:

Exemplu:

folosind clasa de sistem 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 este 15 ') altceva dacă (i == 20) Console.WriteLine (' i este 20 ') altfel Console.WriteLine (' i nu este prezent ')}}

// Ieșire:

am 20 de ani

Declarație de comutare

Intrerupator declarația acționează ca un substitut pentru o scară lungă if-else-if care este utilizată pentru a testa o listă de cazuri. O instrucțiune switch conține una sau mai multe etichete de caz care sunt testate în funcție de expresia switch. Când expresia se potrivește cu un caz, atunci declarațiile asociate cu acel caz ar fi executate.

Sintaxă

switch (variabilă / expresie) {case value1: // Instrucțiuni executate dacă expresie (sau variabilă) = valoare1 break case value2: // Instrucțiuni executate dacă expresie (sau variabilă) = value1 break ... ... ... .. . ... ... implicit: // Instrucțiuni executate dacă nu se potrivește niciun caz}

Diagrama de flux:

Exemplu:

folosind spațiul de nume al sistemului Condițional {class SwitchCase {public static void Main (șir [] args) {char ch Console.WriteLine ('Introduceți un alfabet') ch = Convert.ToChar (Console.ReadLine ()) switch (Char.ToLower (ch )) {case 'a': Console.WriteLine ('Vowel') break case 'e': Console.WriteLine ('Vowel') break case 'i': Console.WriteLine ('Vowel') break case 'o': Console.WriteLine ('Vowel') break case 'u': Console.WriteLine ('Vowel') break default: Console.WriteLine ('Not a vowel') break}}}}

// Ieșire:

Introduceți un alfabet
este
Vocală

Siruri de caractere

Şir Datatype este membru al System.String Clasă. Este capabil să stocheze tipul de date. Putem efectua diverse operații pe Sting, cum ar ficoncatenare, comparație, obținerea de șiruri, căutare, decupare, înlocuire și multe altele.

Analogia String și string

În C # Şir și şir sunt echivalente. Cuvântul șir este un cuvânt cheie și acționează ca System.String clasă. Putem folosi oricare dintre versiuni pentru a declara șiruri.

Sintaxă:

șir s1 = 'Edureka' // crearea șirului folosind un cuvânt cheie șir Șir s2 = 'Învățare fericită' // crearea șirului utilizând clasa Șir

Exemplu:

folosind System public class 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 '} șir s2 = șir nou (ch) Console.WriteLine ( s1) Console.WriteLine (s2)}}

// Ieșire:

Edureka
Tutorial Csharp

Metode de șiruri în C #

Metodă Descriere
Clona () Folosit pentru a returna o referință la această instanță de șir.
Comparați (String, String) Folosit pentru a compara două obiecte șir specificate.
Concat (String, String) Concatenează două instanțe specificate de șir.
Conține (șir) Returnează o valoare care indică un sub-șir specificat
Copiați (șir) Folosit pentru a crea o nouă instanță de șir cu aceeași valoare
CopyTo (Int, Char [], Int, Int) Copiază caractere dintr-o poziție specificată
Egal (String, String) Determină că două obiecte String au aceeași valoare.
Format (șir, obiect) Înlocuiți unul sau mai multe elemente de format într-un șir specificat
IndexOf (String) Raportează indexul bazat pe zero al primei apariții
Insert (Int32, șir) Returnează un șir nou în care un șir este inserat la un index.
IsInterned (String) Indică faptul că acest șir se află în forma de normalizare Unicode C.
IsNullOrEmpty (String) Indică faptul că șirul specificat este nul sau un șir gol.
IsNullOrWhiteSpace (șir) Folosit pentru a indica dacă un șir specificat este nul, gol,
Alăturați-vă (String, String []) Folosit pentru concatenarea tuturor elementelor unei matrici de șiruri
LastIndexOf (Char) Raportează poziția indexului bazat pe zero al ultimului caracter
LastIndexOfAny (Char []) Raportează poziția indexului bazat pe zero al ultimului caracter
Eliminați (Int32) Returnează un șir nou în care sunt incluse toate caracterele
Înlocuiți (șir, șir) Returnează un șir nou în care apar toate aparițiile unui șir
Split (Char []) Se folosește pentru a împărți un șir în șiruri de caractere
Începe cu (șir) Este folosit pentru a verifica dacă începutul acestui șir
Substring (Int32) Este folosit pentru a extrage un șir din această instanță.
ToCharArray () Copiază caracterele din acest caz într-o matrice Unicode.
ToString () Este folosit pentru a returna instanța String.
Tunde() Tunde șirul


Matrice

Similar cu alte limbaje de programare, C # are matrici. Tablourile sunt structurile de date simple care sunt proiectate pentru a stoca același tip de date al elementelor într-o locație de memorie contiguă.

C # acceptă următoarele tipuri de matrice.

  • Matrice unidimensională
  • Matrice multidimensională
  • Matrice zimțată

Matrice unidimensională

Single Dimensional Array stochează elemente sub forma unui singur rând.

Sintaxă

int [] arr = new int [5] // crearea matricei

Exemplu:

folosind System public class ArrayExample {public static void Main (șir [] args) {int [] arr = new int [5] arr [0] = 10 arr [1] = 20 arr [2] = 30 arr [3] = 40 arr [4] = 50 pentru (int i = 0 i 

// Ieșire:

10
douăzeci
30
40
cincizeci

Matrice multidimensională

Multidimensional Array stochează elemente sub formă de dimensiuni multiple, cum ar fi o matrice și un cub etc.

Sintaxă

int val = a [2,3]

Exemplu:

folosind spațiul de nume al sistemului ArrayApplication {class MyArray {static void Main (șir [] args) {int [,] a = new int [5, 2] {{0, 0}, {1, 2}, {2, 4}, {3, 6}, {4, 8}} int i, j pentru (i = 0 i<5 i++) { for (j = 0 j < 2 j++) { Console.WriteLine('a[{0},{1}] = {2}', i, j, a[i, j]) } } Console.ReadKey() } } } 

// Ieșire:

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

Matrice zimțată

Jagged Array este pur și simplu o serie de matrice.

Exemplu:

folosind spațiul de nume al sistemului ArrayApplication {clasa MyArray {static void Main (șir [] args) {int [] [] a = new int [] [] {new int [] {0,0}, new int [] {1,2 }, new int [] {2,4}, new int [] {3, 6}, new int [] {4, 8}} int i, j pentru (i = 0 i<5 i++) { for (j = 0 j < 2 j++) { Console.WriteLine('a[{0}][{1}] = {2}', i, j, a[i][j]) } } Console.ReadKey() } } } 

// Ieșire:

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

Colecții

Colectarea poate fi pur și simplu considerată ca un grup de obiecte colectate împreună, astfel încât să se aplice unele funcții asupra datelor colectate. Operațiunile care, odată ce pot efectua o colecție, sunt,

  • depozitare obiect
  • obiect de actualizare
  • șterge obiectul
  • extrage obiectul
  • obiect de căutare și
  • sortare obiect

Tipuri de colecții

Există trei posibilități diferite de a lucra cu colecțiile. Cele trei spații de nume sunt menționate mai jos:

  • Sistem.Colecții.Generic clase
  • Sistem.Colecții clase
  • System.Collections.Current clase

Clasa System.Collections.Generic are următoarele varietăți de clase:

  • Listă
  • Grămadă
  • Coadă
  • LinkedList
  • HashSet
  • SortedSet
  • Dicţionar
  • SortedDictionary
  • Listă sortată

Sistem.Colecții clasele sunt considerate clase vechi. includ următoarele clase.

  • ArrayList
  • Grămadă
  • Coadă
  • Hashtable

System.Collections.Current clasespațiul de nume oferă clase pentru operațiuni sigure pentru fire. Acum mai multe fire nu vor crea o problemă pentru accesarea articolelor de colecție. clasele disponibile în aceasta sunt,

diferența dintre harta hash și tabelul hash
  • BlockingCollection
  • ConcurrentBag
  • ConcurrentStack
  • Coadă simultană
  • Dicționar concurent
  • Partiții
  • Partiții
  • OrderablePartitioner

Listă

listă este considerat ca o structură de date disponibilă în System.Collection.Generics spațiu de nume. Poate stoca și prelua elemente. Lista este capabilă să stocheze elemente duplicate.

Exemplu:

folosind System folosind System.Collections.Generic public class Edureka {public static void Main (string [] args) {var names = new List () names.Add ('Sandhya') names.Add ('Arun') names.Add ( Numele „Prashanth”). Adăugați („Kiran”) pentru fiecare (var nume în nume) {Console.WriteLine (nume)}}}

// Ieșire:

Sandhya
Arun
Prashanth
Kiran

Set Hash

C # HashSetcategoria este adesea obișnuitămagazin,la pachetsaucitiți componentele. Aceastanumagazin duplicatcomponente.este îndemnata folosi HashSet categoriedacăai primita stocanumai distinctiv componente . este găsit în System.Collections.Generic namespace.

Exemplu:

folosind System folosind System.Collections.Generic public class Edureka {public static void Main (string [] args) {var names = new HashSet () names.Add ('Sunil') names.Add ('Amar') names.Add ( Nume 'Pujari'). Adăugare ('Imran') nume.Adăugare ('karan') pentru fiecare (var nume în nume) {Console.WriteLine (nume)}}}

// Ieșire:

Sunil
Amar
Pujari
Imran
karan

Set sortat

C # SortedSetclasele sunt adesea obișnuitemagazin, elimina sau citit elemente . Menține ordinea crescătoare șinumagazin duplicatelemente.este promptpentru a utiliza SortedSetcategoriedacăai primita stoca distinctiv componente și menține ordinea crescătoare.estegăsit în System.Collections.Generic namespace.

Exemplu:

folosind System folosind System.Collections.Generic public class Edureka {public static void Main (string [] args) {var names = new SortedSet () names.Add ('Sanjay') names.Add ('Anuradha') names.Add ( Nume „Praveen”). Adăugare („Ravi”) nume.Adăugare („Kajol”) pentru fiecare (var nume în nume) {Console.WriteLine (nume)}}}

// Ieșire:

Anuradha
Kajol
Praveen
Ravi
Sanjay

Grămadă

grămadă este o colecție simplă care urmează MARGINE sau prima în ultima ieșire în timpul procesării elementelor stocate în ea.

Exemplu:

folosind System folosind System.Collections.Generic public class Edureka {public static void Main (string [] args) {Stack names = new Stack () names.Push ('Chandan') names.Push ('Pooja') names.Push ( Nume 'James'). Nume Push ('Rajesh'). Push ('kumar') pentru fiecare (numele șirului în nume) {Console.WriteLine (nume)} Console.WriteLine ('Peek element:' + nume.Peek () ) Console.WriteLine ('Pop:' + names.Pop ()) Console.WriteLine ('After Pop, element Peek:' + names.Peek ())}}

// Ieșire:

kumar
Rajesh
James
Pooja
Chandan
Element peek: kumar
Pop: kumar
După Pop, element Peek: Rajesh

Coadă

Coada este complet asemănătoare cu Stack, dar singura diferență este că urmează Coada FIFO sau principiul first in and first out în timpul procesării elementelor stocate în acesta.

Exemplu:

folosind System folosind System.Collections.Generic public class Edureka {public static void Main (string [] args) {Nume de coadă = new Queue () names.Enqueue ('Srujan') names.Enqueue ('Prajat') names.Enqueue ( Nume 'John'). Nume de apel ('Raju'). Nume ('Hari') pentru fiecare (numele șirului în nume) {Console.WriteLine (nume)} Console.WriteLine ('Element peek:' + nume.Peek () ) Console.WriteLine ('Dequeue:' + nume.Dequeue ()) Console.WriteLine ('După Dequeue, element Peek:' + names.Peek ())}}

// Ieșire:

Srujan
Prajat
Ioan
Feroce
Zi
Element peek: Srujan
Stoarce: Srujan
După Dequeue, elementul Peek: Prajat

Listă legată

Lista legată este o colecție de memorie dinamică. Elementele din lista Linked sunt stocate accesând memoria din heap și stocând elementele într-o ordine continuă prin legarea adreselor lor.

Exemplu:

folosind System folosind System.Collections.Generic public class Edureka {public static void Main (string [] args) {var names = new LinkedList () names.AddLast ('Rajat') names.AddLast ('Arun') names.AddLast ( 'Prakash') nume.AddLast ('jay') nume.AddFirst ('sai') foreach (var nume în nume) {Console.WriteLine (nume)}}}

// Ieșire:

sai
Limite
Arun
Prakash
jay

Dicţionar

Dicţionar categoriefoloseșteideea hashtable-ului. Stochează valori pepremisaa cheii. Continedistinctivcheinumai. Deasistențade cheie,vom pur și simplucăutare sauscoate elemente.estegăsit în System.Collections.Generic namespace.

Exemplu:

folosind System folosind System.Collections.Generic public class Edureka {public static void Main (string [] args) {Nume dicționar = nou Dicționar () nume.Adăugare ('1', 'Shiva') nume.Adăugare ('2', Numele „Prasad”). Adăugați nume („3”, „Preetam”). Adăugați nume („4”, „Roy”). Adăugați („5”, „Akash”) pentru fiecare (KeyValuePair kv în nume) {Consolă. WriteLine (kv.Key + '' + kv.Value)}}}

// Ieșire:

1 Shiva
2 Prasad
3 Preetam
4 Roy
5Akash

Dicționar sortat

SortedDictionary categoriefoloseșteproiectaa hashtable-ului. Stochează valori peideeaa cheii. Continedistinctivtastele și menține ordinea crescătoare peideeaa cheii. Deasistențade cheie,vom pur și simplucăutare sauscoate elemente.estegăsit în System.Collections.Generic namespace.

Exemplu:

folosind System folosind System.Collections.Generic public class Edureka {public static void Main (string [] args) {SortedDictionary names = new SortedDictionary () names.Add ('1', 'Arun') names.Add ('4', Nume „Vishal”). Adăugare („5”, „Ramesh”) nume. Adăugare („3”, „Vidya”) nume.Adăugare („2”, „Pallavi”) pentru fiecare (KeyValuePair kv în nume) {Consolă. WriteLine (kv.Key + '' + kv.Value)}}}

// Ieșire:

1 Shiva
2 Prasad
3 Preetam
4 Roy
5Akash

Listă sortată

Listă sortată esteunmatrice de perechi cheie / valoare. Stochează valori pepremisaa cheii. Lista sortatăcategorieconținedistinctivtastele și menține ordinea crescătoare pepremisaa cheii. Deasistențade cheie,suntem capabili să pur și simplucăutați sau eliminațielemente.estegasit in Sistem.Colecții.Generic spațiu de nume.

Exemplu:

folosind System folosind System.Collections.Generic public class Edureka {public static void Main (string [] args) {SortedDictionary names = new SortedDictionary () names.Add ('1', 'Arun') names.Add ('4', Nume „Vishal”). Adăugare („5”, „Ramesh”) nume. Adăugare („3”, „Vidya”) nume.Adăugare („2”, „Pallavi”) pentru fiecare (KeyValuePair kv în nume) {Consolă. WriteLine (kv.Key + '' + kv.Value)}}}

// Ieșire:

1 Arun
2 Pallavi
3 Vidya
4 Vishal
5Ramesh

Structura

Structura este un tip de date definit de utilizator conceput pentru a stoca mai multe elemente ale diferitelor tipuri de date. Structura este declarată folosind cuvântul cheie struct.

Exemplu:

folosind Struct struct System Books {public string title autor public string author public int book_id} public class Edureka {public static void Main (string [] args) {Books Book1 Books Book2 Book1.title = 'C # Programming' Book1.author = ' Ramchandra Kumar 'Book1.subject =' C ++ Programare Tutorial 'Book1.book_id = 95908978 Book2.title =' Telecom Billing 'Book2.author =' Karan 'Book2.subject =' Telecom Billing Tutorial 'Book2.book_id = 18674900 Console.WriteLine ( „Titlul cărții 1: {0}”, Book1.title) Console.WriteLine („Autorul cărții 1: {0}”, Book1.author) Console.WriteLine („Subiectul cărții 1: {0}”, Book1.subject) Console.WriteLine („Book 1 book_id: {0}”, Book1.book_id) Console.WriteLine („Titlul Book 2: {0}”, Book2.title) Console.WriteLine („Book 2 Author: {0}”, Book2.author) Console.WriteLine („Subiectul cărții 2: {0}”, Book2.subject) Console.WriteLine („Book 2 book_id: {0}”, Book2.book_id) Console.ReadKey ()}}

// Ieșire:

Titlul cărții 1: Programare C #
Cartea 1 Autor: Ramchandra Kumar
Subiectul cărții 1: Tutorial de programare C ++
Cartea 1 book_id: 95908978
Titlul cărții 2: Facturarea telecomunicațiilor
Cartea 2 Autor: Karan
Subiectul cărții 2: Tutorial privind facturarea telecomunicațiilor
Cartea 2 book_id: 18674900

Funcții

Funcția este definită ca un bloc de cod al codului principal. Funcția este utilizată pentru a executa instrucțiuni specificate în blocul de cod. O funcție constă din următoarele componente.

  • Numele funcției: Este un nume distinctiv care este folosit pentru a efectua un apel de funcție.
  • Tipul de returnare: Specifică tipul de date al valorii returnate a funcției.
  • Corp: Conține instrucțiuni executabile.
  • Specificator de acces: Specifică accesibilitatea funcției în aplicație.
  • Parametri: Este o listă de argumente pe care le putem transmite funcției în timpul apelului.

Sintaxă

FunctionName () {// body function // return statement}

Exemplu:

folosind spațiul de nume al sistemului FunctionExample {clasa Edureka {șir public Arată (mesaj șir) {Console.WriteLine ('Inside Show Function') return message} static void Main (șir [] args) {Edureka program = new Edureka () șir mesaj = program .Show ('To Edureka') Console.WriteLine ('Welcome' + mesaj)}}}

// Ieșire:

În cadrul funcției Show
Bine ați venit la Edureka

Funcțiile pot fi executate în 3 moduri diferite:

  • Apelați după valoare
  • Apelați prin referință
  • Parametru ieșire

Apelați după valoare

În C #, valoare -tip parametriisuntacea trecereo replicăde valoare originală pentrufuncție în loc dereferinţă. Aceastanumodificaprima valoare. Unamendament creatîn trecutvaloarea nuVârstăvaloarea particulară.în cadrulurmătorul exemplu,noi avemtrecevaloare pe tot parcursulapel.

Exemplu:

folosind spațiul de nume al sistemului CallByValue {clasa Edureka {public void Show (int val) {val * = val Console.WriteLine ('Valoarea din funcția show' + val)} static void Main (șir [] args) {int val = 50 Program Edureka = nou Edureka () Console.WriteLine („Valoare înainte de apelarea funcției” + val) program Afișați (val) Console.WriteLine („Valoare după apelarea funcției” + val)}}}

// Ieșire:

Valoare înainte de apelarea funcției 50
Valoarea din interiorul funcției de spectacol 2500
Valoare după apelarea funcției 50

Apelați prin referință

În metoda Apel prin referință,la ref cuvânt cheie pentru a trece argumentul ca tip de referință. Trece referința argumentelor la funcție, mai degrabă decât o copie a valorii originale. Modificările valorilor trecute sunt permanente și modifica valoarea variabilă originală.

Exemplu:

folosind spațiul de nume al sistemului CallByReference {clasa Edureka {public void Show (ref int val) {val * = val Console.WriteLine ('Valoarea din funcția show' + val)} static void Main (șir [] args) {int val = 50 Program Edureka = nou Edureka () Console.WriteLine ('Valoare înainte de apelarea funcției' + val) program. Afișați (ref val) Console.WriteLine ('Valoare după apelarea funcției' + val)}}}

// Ieșire:

Valoare înainte de apelarea funcției 50
Valoarea din interiorul funcției de spectacol 2500
Valoare după apelarea funcției 2500

Parametru ieșire

Parametrul Outprevede afară cuvânt cheie pentru a transmite argumente ca out-type. Este ca un tip de referință, cu excepția faptului că nu necesită inițializarea variabilei înainte de trecere. Trebuie să folosim afară cuvânt cheie pentru a trece argumentul ca out-type. Este util atunci când dorim ca o funcție să returneze mai multe valori.

Exemplu:

folosind System namespace OutParameter {class Edureka {public void Show (out int val) {int square = 5 val = square val * = val} static void Main (șir [] args) {int val = 50 Edureka program = Edureka nou () Programul Console.WriteLine („Valoare înainte de trecerea variabilei” + val). Afișați (out val) Console.WriteLine („Valoarea după primirea variabilei out” + val)}}}

// Ieșire:

Valoare înainte de a transmite variabila 50

Valoaredupă primirea variabilei out 25

Acum să trecem la programarea orientată pe obiecte

Programare orientată pe obiecte

Programare orientată pe obiecte Sistemeste o paradigmă de programare bazată pe conceptul de obiecte care conțin membrii de date și metode legat de ele. Scopul principal al programării orientate pe obiecte este de a spori flexibilitatea și mentenabilitatea programelor

Caracteristici ale programării orientate pe obiecte:

  • Se pune mai mult accentul pe date decât pe procedură.
  • Programele sunt împărțite în obiecte, facilitând astfel lucrul cu acestea.
  • Structurile de date sunt proiectate în așa fel încât să caracterizeze obiectele.
  • Funcții care funcționează pedatele unui obiect sunt plasate împreună în structura datelor.
  • Datele sunt ascunse și nu pot fi accesate de funcții externe fără permisiune.
  • Comunicarea dintre obiecte poate avea loc cu ajutorul funcțiilor.
  • Adăugarea de noi date și funcții a devenit ușoară.
  • Urmează abordarea de jos în sus în proiectarea programului.

Paradigmele orientate pe obiecte din C # sunt după cum urmează

Enumerare în C #

Enum sau, de asemenea, numit ca un enumerare în C # este folosit pentru a stoca valori constante fără a fi nevoie să le modificați pe parcursul întregii execuții a unui program C #. Aceastaeste folosit pentru a stoca un set de constante numite, cum ar fi sezonul, zilele, luna, dimensiunea etc.

Exemplu:

folosind System public class EnumExample {public enum week {Monday, Tuesday, Wednesday, Thursday, Friday, Friday, Saturday, Sunday} public static void Main () {int x = (int) week.Monday int y = (int) week.Friday Console .WriteLine ('Monday = {0}', x) Console.WriteLine ('Friday = {0}', y)}}

// Ieșire:

Luni = 0
Vineri = 4

Abordare de programare orientată pe obiecte

Stilul de programare orientat pe obiecte poate fi realizat urmând metodele prescrise mai jos.

Incapsularea

Incapsularea este o metodă de combinare a metode împreună cu a lor membrii de date.

Exemplu:

folosind spațiul de nume al sistemului Edureka {class Rectangle {public double length public double width public double GetArea () {return length * width} public void Display () {Console.WriteLine ('Lungime: {0}', lungime) Console.WriteLine (' Lățime: {0} ', lățime) Console.WriteLine (' Zona: {0} ', GetArea ())}} clasa ExecuteRectangle {static void Main (șir [] args) {Rectangle r = new Rectangle () r.length = 50 r.lățime = 35 r.Display () Console.ReadLine ()}}}

// Ieșire:

Lungime: 50
Lățime: 35
Suprafață: 1750

Abstracție

Abstracție este o metodă pentru ascunde partea complexă de codificare de la utilizator, oferindu-i doar informațiile necesare de care are nevoie.

Exemplu:

folosind sistemul public public abstract Shape {public abstract void draw ()} public class Rectangle: Shape {public override void draw () {Console.WriteLine ('drawing rectangle ...')}} public class Circle: Shape {public override void draw () {Console.WriteLine ('drawing circle ...')}} public class TestAbstract {public static void Main () {Shape ss = new Rectangle () s.draw () s = new Circle () s.draw ()}}

// Ieșire:

desen dreptunghi ...
cerc de desen ...

Interfață

interfață este complet similar cu Abstracția. Funcționalitatea unei interfețe este de a ascunde datele neimportante de utilizator și de a-i oferi singurele date importante de care are nevoie.

Exemplu:

folosind interfața publică a sistemului Drawable {void draw ()} public class Rectangle: Drawable {public void draw () {Console.WriteLine ('drawing rectangle ...')}} public class Circle: Drawable {public void draw () {Console .WriteLine ('drawing circle ...')}} public class TestInterface {public static void Main () {Drawable dd = new Rectangle () d.draw () d = new Circle () d.draw ()}}

// Ieșire:

desen dreptunghi ...
cerc de desen ...

Polimorfism

Polimorfismeste combinația dintre „Poli” + „Morfuri” ceea ce înseamnă multe forme. Este un cuvânt grecesc. Înseamnă că segmentul de cod poate lua mai multe forme. Avem două tipuri de polimorfism.

  • Compilați polimorfismul în timp
  • Polimorfismul timpului de rulare

Exemplu:

folosind sistemul public class Animal {public string color = 'white'} public class Dog: Animal {public string color = 'black'} public class TestSealed {public static void Main () {Animal d = new Dog () Console.WriteLine ( d.color)}}

// Ieșire:

alb

Moştenire

Moştenire este un proces în care un obiect dobândește automat toate proprietățile și comportamentele obiectului său părinte. Puteți reutiliza, extinde sau modifica atributele și comportamentele definite în altă clasă. se numește clasa care moștenește membrii altei clase clasa derivată iar clasa ai cărei membri sunt moșteniți se numește baza clasă. Clasa derivată este clasa specializată pentru clasa de bază.

Exemplu pentru moștenirea cu un singur nivel

folosind spațiul de nume al sistemului RectangleApplication {class Rectangle {protejat cu lungime dublă protejată cu lățime dublă public Rectangle (dublu l, dublu w) {lungime = l lățime = w} publică dublă GetArea () {return length * width} public void Display () {Console. WriteLine („Lungime: {0}”, lungime) Console.WriteLine („Lățime: {0}”, lățime) Console.WriteLine („Zona: {0}”, GetArea ())}} clasă de masă: dreptunghi {privat dublu cost public de masă (dublu l, dublu w): bază (l, w) {} public dublu GetCost () {cost dublu cost = GetArea () * 70 cost retur} public void Display () {bază.Display () Consolă .WriteLine ('Cost: {0}', GetCost ())}} clasa ExecuteRectangle {static void Main (șir [] args) {Masă t = masă nouă (4.5, 7.5) t.Display () Consolă.ReadLine () }}}

// Ieșire:

Lungime: 4,5
Lățime: 7,5
Suprafață: 33,75
Cost: 2362,5

Exemplu de moștenire pe mai multe niveluri

folosind spațiul de nume al sistemului InheritanceApplication {class Shape {public void setWidth (int w) {width = w} public void setHeight (int h) {înălțime = h} protejată în lățime protejată în înălțime int} interfață publică PaintCost {int getCost (int area)} class Rectangle: Shape, PaintCost {public int getArea () {return (width * height)} public int getCost (int area) {return area * 70}} class RectangleTester {static void Main (string [] args) {Rectangle Rect = new Rectangle () int area Rect.setWidth (5) Rect.setHeight (7) area = Rect.getArea () Console.WriteLine ('Total area: {0}', Rect.getArea ()) Console.WriteLine ('Total costul vopselei: $ {0} ', Rect.getCost (zonă)) Console.ReadKey ()}}}

// Ieșire:

Suprafața totală: 35
Costul total al vopselei: 2450 USD

Suprasolicitare

Supraîncărcarea este o situație în care avem doi sau membri declarați folosind același nume. Supraîncărcarea este posibilă și atunci când declarăm două sau mai multe metode cu același nume. Să verificăm exemple ale ambelor.

Supraîncărcarea membrilor

Exemplu:

folosind 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 { public static void Main () {Console.WriteLine (Edureka.add (12, 23)) Console.WriteLine (Edureka.add (12, 23, 25))}}

// Ieșire:

35
60

Metoda de supraîncărcare

Exemplu:

folosind System public class 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))}}

// Ieșire:

35
33.699997

Suprasolicitarea

Suprascrierea este o situație în care clasa copil definește aceeași metodă pe care o definește și părintele. Să înțelegem acest lucru printr-un mic exemplu.

Exemplu:

convertiți dublu în întreg în java
folosind 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 {public static void Main () {Dog d = new Dog () d.eat ()}}

// Ieșire:

Mananc

Spațiu de nume

spațiu de nume este practic folosit pentru a gestiona mai multe clase prezente în program. Spațiul de nume este disponibil în moduri diferite.

  • System.Console: Aici Sistem devine spațiul de nume
  • Pentru a accesa clasa unui spațiu de nume, trebuie să folosim namespacename.classname.
  • Putem folosi folosind cuvânt cheie, de asemenea.

Exemplu:

folosind sistemul folosind primul folosind al doilea spațiu de nume primul {public class Edureka {public void sayWelcome () {Console.WriteLine ('Welcome To Edureka')}}} namespace Second {public class Happy_Learning {public void sayWishes () {Console.WriteLine (' Happy Learning ')}}} public class namespace {public static void Main () {Edureka h1 = new Edureka () Happy_Learning w1 = new Happy_Learning () h1.sayWelcome () w1.sayWishes ()}}

// Ieșire:

Bine ați venit la Edureka
Învățare fericită

Operații de fișiere

operații de fișier disponibile în C # sunt după cum urmează:

Operațiune Descriere
BinaryReader Citește date primitive dintr-un flux binar.
BinaryWriter Scrie date primitive în format binar.
BufferedStream Stocare temporară pentru un flux de octeți.
Director Ajută la manipularea unei structuri de directoare.
DirectoryInfo Folosit pentru efectuarea operațiunilor pe directoare.
DriveInfo Oferă informații pentru unități.
Fişier Ajută la manipularea fișierelor.
Informații despre fișier Folosit pentru efectuarea operațiunilor pe fișiere.
FileStream Folosit pentru a citi și a scrie în orice locație dintr-un fișier.
MemoryStream Folosit pentru acces aleatoriu la datele transmise în flux stocate în memorie.
cale Efectuează operații pe informații despre cale.
StreamReader Folosit pentru citirea personajelor dintr-un flux de octeți.
StreamWriter Se utilizează pentru scrierea de caractere într-un flux.
StringReader Este folosit pentru citirea dintr-un buffer de șiruri.
StringWriter Este folosit pentru scrierea într-un buffer de șiruri.

FileMode

FileMode este un enumerator care definește mai multe metode de deschidere a fișierelor. Membrii FileMode Enumerator sunt descriși după cum urmează:

  • Adăuga: Deschide un fișier existent și pune cursorul la sfârșitul fișierului sau creează fișierul dacă fișierul nu există.
  • Crea: Este conceput pentru a crea un fișier nou.
  • Creaza nou: Este conceput pentru a specifica sistemului de operare că ar trebui să creeze un fișier nou.
  • Deschis: Este conceput pentru a deschide un fișier existent.
  • OpenOrCreate: Este conceput pentru a specifica sistemul de operare că ar trebui să deschidă un fișier dacă există, altfel ar trebui să creeze un fișier nou.
  • Trunchia: Trunchia deschide un fișier existent și trunchiază dimensiunea acestuia la zero octeți.

FileAccess

FileAccess Enumeratorul este folosit pentru a obține acces la un anumit fișier. Are următorii membri.

  • Citit
  • Scrie
  • Citeste, scrie

FileShare

Partajare fișiere Enumerator este folosit pentru a partaja un anumit fișier. Are următorii membri.

  • Moștenit: Inheritabil permite unui handhandle să transmită o moștenire proceselor copil.
  • Nici unul: Niciunul nu refuză partajarea fișierului curent
  • Citit: Citire permite deschiderea fișierului pentru citire.
  • Citeste, scrie: ReadWrite permite deschiderea fișierului pentru citire și scriere.
  • Scrie: Scrierea permite deschiderea fișierului pentru scriere.

Evenimente

Un eveniment este în general cunoscut ca o acțiune generată de utilizator. Ar putea fi un clic al mouse-ului și chiar o singură apăsare de tastă de la tastatură. În mod similar, programele C # au și evenimente. Generatorul evenimentului se numește editor iar receptorul evenimentului se numește abonat.

Editor

LA editor conține definiția evenimentului și a delegatului. delegat de eveniment asocierea este definită în acest obiect. A editor obiectul de clasă invocă evenimentul și este notificat altor obiecte.

Abonat

LA abonat acceptă evenimentul și oferă un organizatorul evenimentului. delega în clasa editorului invocă metoda / evenimentul manipulant a clasei de abonați.

Exemplu:

folosind spațiul de nume al sistemului Edureka {șir de delegat public Del (șir de șir) clasă EventBlock {eveniment Del NewEvent public EventBlock () {this.NewEvent + = new Del (this.WelcomeUser)} șir public WelcomeUser (șir de utilizator) {return 'Bun venit la Edureka . '+ nume de utilizator} static void Principal (șir [] args) {EventBlock obj1 = new EventBlock () șir rezultat = obj1.NewEvent (' Happy Learning ') Console.WriteLine (result)}}}

// Ieșire:

Bine ați venit la Edureka. Învățare fericită

Generice

Generice este un concept de a furniza membrilor și metodelor unei clase cu deținătorii de locuri în Rulează. Putem defini Generics folosind paranteze. Să vedem următoarele exemple.

Generice într-o clasă

folosind spațiul de nume al sistemului Edureka {class GenericClass {public GenericClass (T msg) {Console.WriteLine (msg)}} class Program {static void Main (șir [] args) {GenericClass gen = new GenericClass („Acest mesaj este din clasa generică” ) GenericClass genI = new GenericClass (123) GenericClass getCh = new GenericClass ('E')}}}

// Ieșire:

Acest mesaj provine din clasa generică
123
ESTE

Generice într-o metodă

folosind spațiul de nume al sistemului Edureka {class GenericClass {public void Show (T msg) {Console.WriteLine (msg)}} class Program {static void Main (șir [] args) {GenericClass genC = new GenericClass () genC.Show ('This mesajul provine din metoda generică ') genC.Show (321) genC.Show (' H ')}}}

// Ieșire:

Acest mesaj provine din metoda generică
321
H

Delegați

Delega acționează ca o referință la metodă. Practic este la fel ca un indicatorul funcției în C și C ++, dar mult mai bine și sigur de tip. Delegatul în metoda statică încapsulează numai metoda. În timp ce delegatul în instanță metoda încapsulează atât metoda cât și instanța. Cea mai bună utilizare a delegatului este de a utiliza ca eveniment.

Exemplu:

folosind System delegate int Calculator (int n) public class Edureka {static int number = 25 public static int add (int n) {number = number + n return number} public static int mul (int n) {number = number * n return number} public static int getNumber () {return number} public static void Main (string [] args) {Calculator c1 = new Calculator (add) Calculator c2 = new Calculator (mul) c1 (20) Console.WriteLine ('After calculator un delegat, noul număr este: '+ getNumber ()) c2 (3) Console.WriteLine (' După calculatorul doi delegat, noul număr este: '+ getNumber ())}}

// Ieșire:

După calculatorul un delegat, noul număr este: 45
După calculatorul doi delegat, noul număr este: 135

Reflecţie

Reflecția este necesară pentru a obține metadatele în timp de execuție. Referința este disponibilă în Sistem.Reflexie spațiu de nume. Este nevoie de următoarele clase pentru a se executa.

  • Tip
  • MemberInfo
  • ConstructorInfo
  • MethodInfo
  • FieldInfo
  • PropertyInfo
  • TypeInfo
  • EventInfo
  • Modul
  • Asamblare
  • AssemblyName
  • Pointer

Clasa de tip

Clasa de tip C # reprezintă declarații de tip pentru tipuri de clase, tipuri de interfețe, tipuri de enumerare, tipuri de matrice, tipuri de valori

Tastați Proprietăți

O listă cu proprietățile importante ale claselor de tip este menționată mai jos.

Proprietate Descriere
Asamblare Obține ansamblul pentru acest tip.
AssemblyQualifiedName Obține numele calificat pentru ansamblu pentru acest tip.
Atribute Obține atributele asociate tipului.
BaseType Obține tipul de bază sau părinte.
Numele complet Obține numele complet calificat al tipului.
IsAbstract este folosit pentru a verifica dacă tipul este abstract.
IsArray este folosit pentru a verifica dacă tipul este Array.
IsClass este folosit pentru a verifica dacă tipul este de clasă.
IsEnum este folosit pentru a verifica dacă tipul este Enum.
IsInterface este folosit pentru a verifica dacă tipul este Interfață.
IsNested este folosit pentru a verifica dacă tipul este imbricat.
EstePrimitiv este folosit pentru a verifica dacă tipul este Primitiv.
IsPointer este folosit pentru a verifica dacă tipul este Pointer.
IsNotPublic este folosit pentru a verifica dacă tipul nu este public.
IsPublic este folosit pentru a verifica dacă tipul este public.
IsSealed este folosit pentru a verifica dacă tipul este sigilat.
Este serializabil este folosit pentru a verifica dacă tipul este Serializabil.
MemberType este utilizat pentru a verifica dacă tipul este de tip membru al tipului imbricat.
Modul Obține modulul de tip.
Nume Obține numele tipului.
Spațiu de nume Obține spațiul de nume al tipului.
Proprietate Descriere
GetConstructors () Returnează toți constructorii publici pentru tip.
GetConstructors (BindingFlags) Returnează toți constructorii pentru Type cu BindingFlags specificate.
GetFields () Returnează toate câmpurile publice pentru tip.
GetFields (BindingFlags) Returnează toți constructorii publici pentru tipul cu BindingFlags specificat.
GetMembers () Returnează toți membrii publici pentru tip.
GetMembers (BindingFlags) Returnează toți membrii pentru Type cu BindingFlags specificate.
GetMethods () Returnează toate metodele publice pentru tip.
GetMethods (BindingFlags) Returnează toate metodele pentru Type cu BindingFlags specificate.
GetProperties () Returnează toate proprietățile publice pentru tip.
GetProperties (BindingFlags) Returnează toate proprietățile pentru Type cu BindingFlags specificate.
GetType () Obține tipul curent.
GetType (șir) Obține tipul pentru numele dat.

Exemple de reflecție:

Obțineți tip

Exemplu:

folosind System public class GetType {public static void Main () {int a = 10 Type type = a.GetType () Console.WriteLine (type)}}

// Ieșire:

System.Int32

Obțineți asamblare

Exemplu:

folosind System folosind System.Reflection public class GetAssembly {public static void Main () {Type t = typeof (System.String) Console.WriteLine (t.Assembly)}}

// Ieșire:

System.Private.CoreLib, Versiunea = 4.0.0.0, Culture = neutru, PublicKeyToken = 7cec85d7bea7798e

Informații tip tipărire

Exemplu:

folosind System folosind System.Reflection public class 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)}}

// Ieșire:

Adevărat
Fals
Fals

Print Constructori

Exemplu:

folosind System folosind System.Reflection public class PrintConstructors {public static void Main () {Type t = typeof (System.String) Console.WriteLine ('Constructors of {0} type ...', t) ConstructorInfo [] ci = t .GetConstructors (BindingFlags.Public | BindingFlags.Instance) foreach (ConstructorInfo c in ci) {Console.WriteLine (c)}}}

// Ieșire:

Constructori de tip System.String ...
Void .ctor (Char [])
Void .ctor (Char [], Int32, Int32)
Void .ctor (Char *)
Void .ctor (Char *, Int32, Int32)
Void .ctor (SByte *)
Void .ctor (SByte *, Int32, Int32)
Void .ctor (SByte *, Int32, Int32, System.Text.Encoding)
Void .ctor (Char, Int32)
Void .ctor (System.ReadOnlySpan`1 [System.Char])

Metode de tipărire

Exemplu:

folosind System folosind System.Reflection public class PrintMethods {public static void Main () {Type t = typeof (System.String) Console.WriteLine ('Methods of {0} type ...', t) MethodInfo [] ci = t .GetMethods (BindingFlags.Public | BindingFlags.Instance) foreach (MethodInfo m in ci) {Console.WriteLine (m)}}}

// Ieșire:

Metode de tip System.String ...
System.String Înlocuiți (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) ......

Câmpuri de imprimare

Exemplu:

folosind System folosind System.Reflection public class PrintFields {public static void Main () {Type t = typeof (System.String) Console.WriteLine ('Fields of {0} type ...', t) FieldInfo [] ci = t .GetFields (BindingFlags.Public | BindingFlags.Static | BindingFlags.NonPublic) foreach (FieldInfo f in ci) {Console.WriteLine (f)}}}

// Ieșire:

Câmpuri de tip System.String ...
System.String Empty

Acum, să trecem la câteva concepte avansate de programare C #

Concepte avansate C #

Funcție anonimă

Funcția căreia îi lipsește un anumit nume se numește Anonim Funcții. Există două tipuri de funcții anonime disponibile în C #

  • Expresii Lambda
  • Metode anonime

Exemplu:

folosind System namespace LambdaExpressions {class Edureka {delegate int Square (int num) static void Main (string [] args) {Square GetSquare = x => x * x int j = GetSquare (25) Console.WriteLine ('Square:' + j)}}}

// Ieșire:

Pătrat: 625

Metode anonime

metoda anonima oferă aceeași funcționalitate ca un expresie lambda, cu excepția faptului că ne permite să ignorăm lista de parametri.

Exemplu:

folosind spațiul de nume al sistemului AnonymousMethods {class Program {public delegate void AnonymousFun () static void Main (șir [] args) {AnonymousFun fun = delegate () {Console.WriteLine ('This is anonymous function')} fun ()}}}

// Ieșire:

Aceasta este o funcție anonimă

Multi-Threading

Multithreading este un proces în care sunt create și atribuite mai multe fire de lucru pentru diferite sarcini. acest lucru economisește timp executând mai multe lucrări la un moment dat. Clasa multithreading este disponibilă în Sistem.Filare spațiu de nume.

System.Threading namespace

Sistem.Filare spațiul de nume conține clase și interfețe pentru a facilita multithreading. Oferă clase pentru a sincroniza resursa thread. O listă a claselor frecvent utilizate este prezentată mai jos:

  • Fir
  • Mutex
  • Temporizator
  • Monitor
  • Semafor
  • ThreadLocal
  • ThreadPool
  • Volatil

Proces și fir

Procesul este de fapt și cerere și este considerat a fi un grea componentă. Pe de altă parte, firul este unul singur modul a întregii cereri. Este ușor comparativ cu procesul

Ciclul de viață al unui fir

Fiecare fir are un ciclu de viață. Ciclul de viață al firului este definit în clasa System.Threading.Thread. Următoarele sunt etapele ciclului de viață al oricărui fir.

  • Neînceput
  • Runnable (Gata de rulare)
  • Alergare
  • Nu Runnable
  • Mort

Clasa Thread oferă următoarele proprietăți și metode după cum urmează.

Proprietățile firului

Proprietate Descriere
CurrentThread returnează instanța firului care rulează în prezent.
Este in viata verifică dacă firul curent este viu sau nu.
IsBackground Pentru a obține / setați valoarea firului curent este în fundal sau nu.
ManagedThreadId este folosit pentru a obține id-ul unic pentru firul gestionat în prezent.
Nume este folosit pentru a obține sau seta numele firului curent.
Prioritate este folosit pentru a obține sau seta prioritatea firului curent.
ThreadState este folosit pentru a returna o valoare care reprezintă starea firului.

Metode de thread

Metodă Descriere
Intrerupere de sarcina() este folosit pentru a termina firul. Se ridică ThreadAbortException.
Întrerupe() este folosit pentru a întrerupe un fir care se află în starea WaitSleepJoin.
A te alatura() este folosit pentru a bloca toate firele de apel până când acesta se termină.
ResetAbort() este folosit pentru a anula cererea de Anulare pentru firul curent.
Relua() este folosit pentru a relua firul suspendat. Este învechit.
Somn (Int32) este utilizat pentru a suspenda firul curent pentru milisecundele specificate.
Start() schimbă starea curentă a firului în Runnable.
Suspenda() suspendă firul curent dacă nu este suspendat. Este învechit.
Randament() este folosit pentru a da execuția firului curent altui fir.

Exemplu de subiect principal

folosind System folosind System.Threading public class Edureka {public static void Main (string [] args) {Thread t = Thread.CurrentThread t.Name = 'MainThread' Console.WriteLine (t.Name)}}

// Ieșire:

MainThread

Manevrarea excepțiilor

excepție este o eroare aruncată de program în timpul rulării sale. Executăm gestionarea excepțiilor pentru a face programul nostru gratuit.

Excepție Descriere
System.DivideByZeroException Eroare generată prin împărțirea unui număr cu zero.
System.NullReferenceException gestionează eroarea generată prin referirea la obiectul nul.
System.InvalidCastException gestionează eroarea generată de tipărirea nevalidă.
System.IO.IOException gestionează erorile de intrare / ieșire.
System.FieldAccessException Eroare generată de accesul privat / protejat nevalid.

În C #, folosim 4 cuvinte cheie pentru performanță tratarea excepțiilor:

  • încerca
  • captură
  • în cele din urmă și
  • arunca
Exemplu:
folosind System public class EdurekExample {public static void Main (string [] args) {try {int a = 10 int b = 0 int x = a / b} catch (Exception e) {Console.WriteLine (e)} Console.WriteLine ('Acest mesaj este din blocul de captură')}}

// Ieșire:

System.DivideByZeroException: s-a încercat divizarea la zero.
la ExExaEdurekample.Main (String [] args) în F: C # Tutorial C # ProgramsConsoleApp1ConsoleApp1Program.cs: linia 10
Acest mesaj provine din blocul de captură

Exemplu de excepție personalizat

folosind System public class InvalidAgeException: Exception {public InvalidAgeException (String message): bază (mesaj) {}} public class Customized {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.') } } 

// Ieșire:

InvalidAgeException: Ne pare rău, se așteaptă ca vârsta să fie mai mare de 18 ani
la Customized.validate (vârsta Int32) în F: C # Tutorial C # ProgramsConsoleApp1ConsoleApp1Program.cs: linia 18
la Customized.Main (String [] args) în F: C # Tutorial C # ProgramsConsoleApp1ConsoleApp1Program.cs: linia 23
Blocul de captură este executat acum.

În cele din urmă, exemplul bloc

folosind System public class FinalExecption {public static void Main (string [] args) {try {int a = 10 int b = 0 int x = a / b} catch (Exception e) {Console.WriteLine (e)} în cele din urmă {Console .WriteLine ('Blocul final este executat')} Console.WriteLine ('Blocul captură este executat')}}

// Ieșire:

System.DivideByZeroException: s-a încercat divizarea la zero.
la FinalExecption.Main (String [] args) în F: C # Tutorial C # ProgramsConsoleApp1ConsoleApp1Program.cs: linia 10
În cele din urmă blocul este executat
Blocul de captură este executat

Semnătura de excepție a sistemului

[SerializableAttribute] [ComVisibleAttribute (true)] clasă publică SystemException: Excepție

Constructori de excepții de sistem

Constructor Descriere
SystemException () Este folosit pentru a inițializa o nouă instanță a clasei SystemException.
SystemException

(SerializationInfo, StreamingContext)

Este folosit pentru a inițializa o nouă instanță a clasei SystemException cu date serializate.
SystemException (String) Se utilizează pentru a inițializa o nouă instanță a clasei SystemException cu un mesaj de eroare specificat.
SystemException (Șir, Excepție) Este folosit pentru a inițializa o nouă instanță a clasei SystemException cu un mesaj de eroare specificat și o referință la excepția interioară care este cauza acestei excepții.

Proprietăți de excepție a sistemului

Proprietate Descriere
Date Este folosit pentru a obține o colecție de perechi cheie / valoare care oferă informații suplimentare definite de utilizator despre excepție.
HelpLink Este folosit pentru a obține sau a seta un link către fișierul de ajutor asociat acestei excepții.
Rezultat HR Este folosit pentru a obține sau seta HRESULT, o valoare numerică codificată care este atribuită unei excepții specifice.
InnerException Este folosit pentru a obține instanța Exception care a cauzat excepția curentă.
Mesaj Este folosit pentru a primi un mesaj care descrie excepția curentă.
Sursă Este folosit pentru a obține sau seta numele aplicației care provoacă eroarea.
StackTrace Se folosește pentru a obține o reprezentare în șir a cadrelor imediate din stiva de apeluri.
TargetSite Este folosit pentru a obține metoda care aruncă excepția curentă.

Metode de excepție a sistemului

Metode Descriere
Egal (obiect) Se folosește pentru a verifica dacă obiectul specificat este sau nu egal cu obiectul curent.
Finalizați () Este folosit pentru a elibera resurse și a efectua operațiuni de curățare.
GetBaseException () Este folosit pentru a obține excepția root.
GetHashCode () Este folosit pentru a obține codul hash.
GetObjectData

(SerializationInfo, StreamingContext)

Este folosit pentru a obține date despre obiecte.
GetType () Este folosit pentru a obține tipul de execuție al instanței curente.
MemberwiseClone () Este folosit pentru a crea o copie superficială a obiectului curent.
ToString () Este folosit pentru a crea și a returna o reprezentare șir a excepției curente.

Exemplu de excepție de sistem

folosind spațiul de nume al sistemului CSharpProgram {class SystemExceptionExample {static void Main (string [] args) {try {int [] arr = new int [5] arr [10] = 25} catch (SystemException e) {Console.WriteLine (e)} }}}

// Ieșire:

System.IndexOutOfRangeException: Indexul se afla în afara limitelor matricei.
la CSharpProgram.SystemExceptionExample.Main (String [] args) în F: C # Tutorial C # ProgramsConsoleApp1ConsoleApp1Program.cs: linia 11

Sincronizare

Sincronizarea poate fi o tehnică care permite accesarea resursei pentru o anumită perioadă de timp doar la un fir. Niciun fir alternativ nu se va întrerupe până când firul desemnat își termină sarcina.

În programul multithreading, firele sunt permisepentru a accesa orice resursă pentruexecuție specificatătimp. Firele partajează resurse și se execută asincron. Accesarea resurselor partajate (date)poate fi o sarcină importantăcă în generalar putea oprisistemul.avem tendința de a o influențaprin crearea de fire în mod sincron.

Exemplu fără sincronizare

folosind System folosind System.Threading class 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() } } 

// Ieșire:

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

Exemplu cu sincronizare

folosind System folosind System.Threading class 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() } } 

// Ieșire:

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

Functii noi

Microsoft a adăugat multe caracteristici de ultimă generație în limbajul C #, dintre care unele sunt menționate mai jos.

C # 6.0

  • Utilizarea directivei statice
  • Filtre de excepție
  • Așteptați în blocuri de captură / în cele din urmă
  • Inițializatoare de proprietăți auto
  • Valori implicite pentru proprietățile numai getter
  • Membri cu expresie
  • Propagator nul
  • Interpolarea șirurilor
  • Numele operatorului
  • Dicționar initializer
  • Compiler-as-a-service (Roslyn)

C # 7.0

  • Potrivire de model
  • Tuples
  • Deconstrucție
  • Funcții locale
  • Separator de cifre
  • Litere binare
  • Ref se întoarce și localnicii
  • Constructori și finalizatori cu corp de expresie
  • Getters și seteri cu expresie corporală
  • Variabile afară
  • Tipuri de returnare asincronizate generalizate

C # 7.1

  • Principal asincron
  • Expresii implicite

Întrebări de interviu bazate pe C #

Întrebările importante ale interviului bazate pe limbajul de programare C # pot fi găsite în această actualizare .

Cu aceasta, ajungem la sfârșitul acestui articol „C # Tutorial”. Sper că ați înțeles importanța structurilor de date, a sintaxei, a funcționalității și a operațiunilor efectuate folosindu-le. Acum că ați înțeles elementele de bază ale programării în C # prin aceastaC # Tutorial, verificați instruire oferită de Edureka pe multe tehnologii precum Java, Primăvară și multeMai mult, o companie de învățare online de încredere, cu o rețea de peste 250.000 de cursanți mulțumiți răspândiți în întreaga lume a primit intrebare pentru noi? Menționați-l în secțiunea de comentarii a acestui blog „C # Tutorial” și vă vom răspunde cât mai curând posibil.