C # apmācība: pamati, kas jums jāapgūst C #



Šis raksts par C # apmācību palīdzēs jums iegūt detalizētas zināšanas par C # pamatelementiem, kā arī reāllaika piemērus labākai izpratnei.

C # ir universāla un stabila programmēšanas valoda, kuru Microsoft Corporation 2000. gadā izstrādāja kā nāvējošu Java konkurentu. Tā ir vispopulārākā un dominējošā programmēšanas valoda gan tīmekļa, gan darbvirsmas lietojumprogrammu izstrādē.

Šajā C # apmācībā mēs iemācīsimies šādus jēdzienus.





C # pamati

Ievads C # programmēšanas valodā

Vēl 90. gadu sākumā Java bija vadošā programmēšanas valoda tīmekļa izstrādē, darbvirsmas lietojumprogrammu izstrādē un daudzās citās jomās. Microsoft vēlējās nākt klajā ar konkurentu ar daudzām uzlabotām funkcijām, kas var atstāt Java tālu aiz muguras.



C#-Tutorial-hejlsberg_bio

Tas bija 2000. gadā, Anders Hejlsberg un viņa Microsoft komanda nāca klajā ar ideju par C #, ko tautā sauca par C-Sharp. Šo iniciatīvu apstiprināja Starptautiskā standartu organizācija (VAIRĀKUMS) un Eiropas datoru ražotāju asociācija (ECMA). un visbeidzot, C # ienāk programmatūras izstrādes pasaulē.

C # programmēšanas valodas iezīmes



  • Uz objektu orientēta programmēšanas valoda

Uz objektu orientētas programmēšanas pieeja ir tā, kas padara C # sharp par programmētājiem draudzīgāko un viegli izstrādājamu un uzturamu programmēšanas valodu.

  • Tipam droša valoda

Type-Safe nozīme ir tāda, ka kompilatoram tiks dota piekļuve tikai atmiņas vietai, kurai ir atļauja izpildīt. Šī funkcija uzlabo koda drošību līdz eksponenciālam līmenim.

  • Savietojamība

Savietojamības iezīme padara C # pietiekami spējīgu darīt visu, kas ir C ++ dzimtene, efektīvāk, tādējādi pārspējot pašu C ++.

  • Bagāta bibliotēka

C # nodrošina piekļuvi vairākiem iebūvētu bibliotēku skaitiem, kas nodrošina iepriekš ieprogrammētas funkcijas, lai samazinātu izstrādes procesā pavadīto laiku.

  • Mērogojama un atjaunināma

C # tika izstrādāts, lai būtu pārāks starp citām programmēšanas valodām. Tādējādi tas vienmēr ir atvērts atjauninājumiem, un tas ar savām funkcijām saglabā sevi ļoti pielāgojamu.

  • Orientēts uz komponentu

Microsoft izstrādātāji izmantoja uz komponentiem balstītu pieeju, lai izstrādātu C #. Šī ir visizplatītākā izstrādes metodoloģija, lai saglabātu C # ļoti mērogojamu un atjauninātu.

  • Strukturētā valoda

Strukturētās programmēšanas pieeja ir ieteicama programmatūras izstrādes dzīves cikla laikā, jo programmatūras sastādīšanu un izvietošanu kļūst viegli izstrādāt, salīdzinot ar procedūru orientētu programmēšanas pieeju.

  • Ātri

C # Programmēšana notiek ātrāk sastādīšanā un izpildē, salīdzinot ar C ++ un citām programmēšanas valodām.

Uzstādīšana

Ir pierādīts, ka Microsoft Visual Studio ir labākais klases redaktors C # programmēšanai. Mēs instalēsim un iestatīsim Microsoft Visual Studio mūsu C # programmu izpildei, veicot tālāk minētās darbības:

1. solis : Lejupielādējiet Microsoft Visual Studio

Google for Visual Studio jaunākā versija un lejupielādējiet uzstādīt failu vietējā sistēmā un pēc tam palaist instalētāja failu administrators.

2. darbība: atlasiet .NET darbvirsmas izstrādes paketi

Tiklīdz palaidīsit instalēšanas programmu, Visual Studio redaktors tiks veiksmīgi lejupielādēts jūsu vietējā sistēmā, vēlāk darbvirsmas ekrānā tiks parādīts dialoglodziņš, lūdzot ienaidnieku: konkrēto paketi jums ir nepieciešams jūsu sistēmā. Šeit jums jāizvēlas .NET darbvirsmas izstrāde iepakojums.

3. solis: iestatiet C # vidi

Kad jūsu paketes .NET izstrāde tiek lejupielādēti, tad ekrānā tiks parādīts vēl viens dialoglodziņš, kurā tiks prasīta meklējamā izstrādes vide. Lūk, jums tas ir nepieciešams atlasiet vidi C #.

4. solis: izveidojiet savu pirmo projektu

Kad vide ir iestatīta, jums visiem ir labi iet. Sāciet savu Visual Studio un atlasiet izveidot jaunu projektu opcija parādītajā dialoglodziņā.

Jūs tiksiet novirzīts uz nākamo dialoglodziņu, un tur jums būs jāizvēlas Klases bibliotēka kā .NET standarts kā parādīts zemāk.

Nākamajā dialoglodziņā jums tiks lūgts Konfigurējiet savu projektu . Konfigurējiet to un tagad esat redaktorā. Uzrakstiet savu pirmo programmu un palaist to. Rezultāts tiks veiksmīgi parādīts Komandu uzvedne.

izmantojot sistēmas klasi Edureka {static void Main (string [] args) {Console.WriteLine ('Laipni lūdzam Edureka !, Laimīgu mācīšanos ..!')}}

// Izeja:

Izpildīsim savu pirmo C # programmu.

C # programmas struktūra

Tagad, kad esam izpildījuši savu pirmo C # programmu, ļaujiet mums detalizēti izprast tās struktūru. Vienkāršai C # programmai ir šādas daļas.

izmantojot System namespace ConsoleApplication1 {public class Edureka {public static void Main (string [] args) {Console.WriteLine ('Laipni lūdzam Edureka !, Laimīgu mācīšanos ..!')}}}

// Izeja:

Laipni lūdzam Edureka !, Laimīgu mācīšanos ..!

  • klase: klasi parasti var definēt kā a atslēgvārdu kas tiek izmantots, lai definētu klasi C # programmā.
  • Edureka: Tas ir nosaukums Klase. Nodarbība bieži tiek uzskatīta par plānu, kurā glabājas ar klasi saistītie dalībnieki un metodes.
  • Galvenais: Būtībā ir primārā metode no visas C # programmas, tas darbojas kā vārteja vadībai, lai ievadītu programmu. Tas tiek izpildīts, pirms tiek izpildīta jebkura cita programmas metode.
  • anulēts: Šis koda segments ir norādīts atgriešanās veids metodes. Tas var būt jebkurš datu tips, izņemot spēkā neesošu. Void nozīmē, ka metodei nav datu, kas no tās tiktu atgriezti.
  • statisks: Tas ir atslēgvārdu kas saka, ka deklarētie datu dalībnieki ir statiski, un deklarētajiem dalībniekiem tiek piešķirta īpaša atmiņa.
  • Stīga [] argumentē: Tas atgādina komandrindas argumentus, kurus mēs izmantojam mūsu programmā. Kamēr mēs izpildām savu programmu, mēs būtībā izturam dažus argumenti, ko programma pieņems šī paziņojuma dēļ.
  • System.Console.WriteLine (“Laipni lūdzam Edureka !, Laimīgu mācīšanos ..!”) Šeit, Sistēma ir nosaukumvieta. Konsoleir tā, ka izklāstītā kategorijasistēmas nosaukumvietā. The WriteLine () ir tas, kastatiskstehnikano konsoleskategorija, kuru izmanto norakstīšanaikonsoles tekstu.

Ļaujiet mums uzzināt C # pieejamos datu veidus.

Datu tipi

C # datu tipi ir sadalīti trīs kategorijās, kas aprakstītas turpmāk.

Vērtību datu tipi

The Vērtību datu tipi atrodas System.ValueType Bibliotēkā un vienmēr ir gatavi tieši piekļūt, un mainīgos var tieši piešķirt noteiktai vērtībai. Vērtību datu tipi tiek turpmāk iedalīti divos veidos, kā parādīts zemāk:

  • Iepriekš definēti datu tipi
  • Lietotāja definēti datu tipi

Iepriekš definēti datu tipi: Tie ir tie, kurus mēs parasti izmantojam ikdienas programmēšanā. Šos datu veidus iepriekš nosaka valodas izstrādātāji, un tie ir gatavi lietošanai programmētājiem.

Piemērs:

int, float, char, īss dubultā utt

Lietotāja noteikti datu tipi: Pastāv situācijas, kad mums, iespējams, būs jāglabā dažādas vērtības no datu tipiem vienā mainīgajā. Šajos gadījumos Iepriekš definēti datu tipi nav pietiekami daudz. Lietotājs definēts Datu tipi ir kā pielāgojami datu tipi lietotājam.

Piemērs: Struktūra, Enum

Datu tips Piešķirtās atmiņas diapazons Atmiņas lielums
parakstīts char -128 līdz 127 1 baits
neparakstīta char 0 līdz 127 1 baits
char -128 līdz 127 1 baits
parakstīts īss -32 768 līdz 32 767 2 baiti
neparakstīts īss 0 līdz 65 535 2 baiti
īss -32 768 līdz 32 767 2 baiti
parakstīts int -2,147,483,648 līdz -2,147,483,647 4 baiti
neparakstīts int 0 līdz 4 294 967 295 4 baiti
int -2,147,483,648 līdz -2,147,483,647 4 baiti
parakstīts ilgi -9 223 372 036 854 775 808 līdz 9 223 372 036 854 775 807 8 baiti
neparakstīts ilgi 0 līdz 18 446 744 073 709 551 615 8 baiti
ilgi -9 223 372 036 854 775 808 līdz 9 223 372 036 854 775 807 8 baiti
peldēt 1,5 * 10-45 - 3,4 * 1038, (7 ciparu precizitāte) 4 baiti
dubultā 5,0 * 10-324 - 1,7 * 10308, (15 ciparu precizitāte) 8 baiti
aiz komata -7,9 * 10-28 - 7,9 * 1028, (28 ciparu precizitāte) 16 baiti


Rādītāja datu tips

Rādītāja tips ir vienkāršs datu tips. Tās funkcionalitāte ir pilnīgi līdzīga rādītājiem C. Tās ir paredzētas cita rādītāja adreses glabāšanai.

pludiņš * ptr

Atsauces datu tipi

Nosaukums ir pats par sevi saprotams. The Atsauces datu tipi faktiski neglabā mainīgos, tā vietā glabā atsauces vērtību konkrētajam mainīgajam. Citiem vārdiem sakot, viņi saglabā faktiskā mainīgā adresi.

Atsauces mainīgie tiek iedalīti trīs dažādos veidos, kā minēts turpmāk:

  • Objekta tips

Objekta datu tips ir pieejams Sistēma. Objekts Klase.Objektsveidivar būtpiešķirtsvērtībaspārējie veidi,atsauceveidi, iepriekš definēts, lietotāja definētsveidi. Bet, pirms tamuzdevumsvērtības, tas prasa tips konversija.

objekts abc abc = 50 // to sauc par boksu
  • Dinamiskais tips

Dinamiskā tipa mainīgie ir paredzēti gandrīz visu veidu vērtību glabāšanai. To sauc par dinamisko tipu, jo vērtību tipa pārbaude notiek izpildlaikā

dinamisks x = 10
  • Stīgu tips

Stīgu veids ir pieejams šādā valodā: Sistēma. Stīga klasē. Stīgu veids ir paredzēts stīgu literāļu glabāšanai. Stīgu literāti tiek glabāti divās formāsdivas formas

    • citēts
    • @citēts.
Stīga S = 'Edureka'
  • The @citēts virkne burtiski izskatās
@ 'Edureka'

Tagad ļaujiet mums saprast mainīgos.

Mainīgie

Mainīgie ir nosaukumi, kas piešķirti atmiņas vietai, kurā glabājas daži lietotāja sniegtie dati un kuriem ir viegli piekļūt, izmantojot mainīgā nosaukumu. C # ir pieejami pieci mainīgo veidi

Tips Piemērs
Null Nav datu
Būla Patiesa un nepatiesa
Vesels skaitlis Int, Char, baits, īss, garš
Peldēt Peldošs un divvietīgs
Decimāldaļa Decimāldaļa

Piemērs:

int a, b dubultā x pludiņš p char abc

Noteikumi, kas jāievēro, lai deklarētu mainīgos C #

  • Mainīgais var ietvert alfabētus, ciparus un pasvītras.
  • Mainīgā nosaukums var sākties tikai ar alfabētu vai pasvītru.
  • Mainīgos lielumus nevar sākt ar ciparu vai īpašu rakstzīmi.
  • Starp mainīgā nosaukumu nav atļautas atstarpes.
  • Rezervētos atslēgvārdus nevar izmantot kā mainīgo nosaukumus.

Operatori

Operatoru var definēt kā īpašu simbolu, kas izskaidro datoru, lai veiktu noteiktu matemātisko ir loģisku darbību ar mainīgo kopu. C # ietver dažādus operatorus, kuri ir minēti zemāk.

  • Aritmētiskie operatori
  • Relāciju operatori
  • Loģiskie operatori
  • Operatori, kas darbojas pa bitiem
  • Uzdevumu operatori

Aritmētiskie operatori

Operators Piemērs Apraksts
+ A + B Pievieno divus operandus
- A - B Atņem divus operandus
* A * B Vairāki divi operandi
/ A / B Dala divus operandus
% A% B Pārējo divu operandu atlikums
++ A ++ Darbība ar pieaugumu
- TO- Samazināšanas darbība

Relāciju operatori

Operators Piemērs Apraksts
== A == B Patiesi, ja abi operandi ir vienādi, cits False
! = A! = B Taisnība, ja abi operandi nav vienādi, citādi False
> A> B Patiesi, ja A ir lielāks, tad cits False
< TO Taisnība, ja B ir lielāks, cits nepatiess
> = A> = B Taisnība, ja A ir lielāks vai vienāds, cits False
<= TO<= B Taisnība, id B ir lielāks vienāds, cits nepareizs

Loģiskie operatori

Operators Piemērs Apraksts
&& A && B Patiesi, ja abi operandi ir patiesi, cits False
|| A || B Taisnība, ja viens no operandiem ir patiess, cits nepatiess
! A! B Apgriež operanda loģisko stāvokli

Operatori, kas darbojas pa bitiem

TO B A & B A | B A ^ B
viens viens viens viens 0
viens 0 0 viens viens
0 viens 0 viens viens
0 0 0 0 0
Operators Piemērs Apraksts
~ (~ A) Binārā viena komplementa operators nav viennozīmīgs, un tam ir “pagrieziena” efekts.
<< TO<<2 Binārais kreisās maiņas operators. Kreiso operandu vērtību pārvieto pa kreisi ar labajā operandā norādīto bitu skaitu.
>> A >> 2 Binārais labās maiņas operators. Kreiso operandu vērtību pārvieto pa labi ar labajā operandā norādīto bitu skaitu.

Uzdevumu operatori

Operators Piemērs Apraksts
= A = B + C A = B + C, B + C tiek piešķirts A
+ = A + = B A = A + B, A + B ir piešķirts A
- = A - = B A = A-B, A-B ir piešķirts A
* = A - = B A = A * B, A * B ir piešķirts A
/ = A / = B A = A / B, A / B ir piešķirts A
% = A% = B A = A% B, A% B ir piešķirts A
<<= TO<<= 2 Kreisās maiņas un norīkojuma operators
>> = A >> = 2 Labās maiņas un norīkojuma operators
& = A & = 2 Bitwise un uzdevuma operators
^ = A ^ = 2 Bitwise ekskluzīvais un piešķiršanas operators
| = A! = 2 Bitwise Inclusive un Piešķiršanas operators

Cilpas

TO cilpa paziņojums tiek izmantots, lai atkārtoti izpildītu paziņojumu bloku, līdz tiek izpildīts noteikts nosacījums. C # valoda sastāv no šādiem cilpu paziņojumiem.

  • Par cilpu
  • Kamēr cilpa
  • Dariet, kamēr cilpa

Par cilpu

The par cilpu tiek izmantots, lai vairākas reizes izpildītu noteiktu koda segmentu, līdz tiek izpildīts dotais nosacījums.

Sintakse

par (inicializācijas nosacījuma pieaugums / samazinājums) {// koda segments}

Plūsmas diagramma:

Piemērs:

izmantojot System public class ForExample {public static void Main (string [] args) {for (int i = 1 i<= 5 i++) { Console.WriteLine(i) } } } 

// Izeja:

viens
2
3
4
5

Kamēr cilpa

The Kaut cilpa tiek izmantots, lai izpildītu koda segmentu vairākas reizes, līdz tiek izpildīts konkrēts nosacījums.

Sintakse

while (nosacījums) {// izpildāms kods}

Plūsmas diagramma:

Piemērs:

izmantojot sistēmas nosaukumvietu Cilpas {klase Programma {static void Main (string [] args) {int x = 5 while (x<= 10) { Console.WriteLine('The value of a: {0}', x) x++ } Console.ReadLine() } } } 

// Izeja:

Vērtība: 5
Vērtība: 6
A vērtība: 7
Vērtība: 8
A vērtība: 9
Vērtība: 10

Dariet, kamēr cilpa

Dariet kamēr cilpa ir pilnīgi līdzīga kamēr Loop, bet vienīgā atšķirība ir tā, ka nosacījums tiek ievietots cilpas beigās. Tādējādi cilpa tiek izpildīta vismaz vienu reizi.

Sintakse

do {// kods tiks izpildīts} while (nosacījums)

Plūsmas diagramma:

Piemērs:

izmantojot sistēmas nosaukumvietu 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, produkts) i ++}, kamēr (i<= 10) } } } 

// Izeja:

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

Nosacīts

Nosacīti paziņojumi tiek izmantoti, lai izpildītu paziņojums, apgalvojums vai grupas paziņojumi pamatojoties uz kādu nosacījumu. Ja stāvoklī tad ir taisnība C # paziņojumi tiek izpildīti citādi nākamie paziņojums, apgalvojums tiks izpildīts.

Dažādi nosacījumu paziņojumu veidi C ++ valodā ir šādi:

  1. Ja paziņojums
  2. If-Else paziņojums
  3. Ligzdots paziņojums If-else
  4. Ja-vēl Ja kāpnes
  5. Pārslēgt paziņojumu

Ja paziņojums

Viens ja paziņojums C # valodā tiek izmantots koda izpildei, ja nosacījums ir patiess. To sauc arī par vienvirziena atlases paziņojumu.

Sintakse

ja (Būla izteiksme) {// izpildītie priekšraksti, ja Būla izteiksme ir patiesa}

Plūsmas diagramma:

Piemērs:

izmantojot sistēmas nosaukumvietu Nosacījums {class IfStatement {public static void Main (string [] args) {int number = 2 if (number<5) { Console.WriteLine('{0} is less than 5', number) } Console.WriteLine('This statement is always executed.') } } } 

// Izeja:

2 ir mazāks par 5
Šis paziņojums vienmēr tiek izpildīts.

If-Else paziņojums

The ja-vēl paziņojums C valodā tiek izmantots koda izpildei, ja nosacījums ir patiess vai nepatiess. To sauc arī par divvirzienu atlases paziņojumu.

Sintakse

if (Būla-izteiksme) {// izpildītie priekšraksti, ja Būla-izteiksme ir patiesa} cits {// priekšraksti, ja Būla-izteiksme ir nepatiesa

Plūsmas diagramma:

Piemērs:

izmantojot sistēmas nosaukumvietu Nosacījums {class IfElseStatement {public static void Main (string [] args) {int number = 12 if (number<5) { Console.WriteLine('{0} is less than 5', number) } else { Console.WriteLine('{0} is greater than or equal to 5', number) } Console.WriteLine('This statement is always executed.') } } } 

// Izeja:

12 ir lielāks vai vienāds ar 5
Šis paziņojums vienmēr tiek izpildīts.

Ligzdots paziņojums If-else

Ligzdoti ja-vēl paziņojums tiek izmantots, ja programmai nepieciešama vairāk nekā viena testa izteiksme. To sauc arī par daudzvirzienu atlases paziņojumu. Kad paziņojumā ir iesaistīta virkne lēmumu, mēs to izmantojam ja-vēl paziņojums ligzdotā formā.

Sintakse

if (būla izteiksme) {if (nested-expression-1) {// izpildāms kods} else {// izpildāms kods}} else {if (nested-expression-2) {// izpildāms kods } cits {izpildāms kods}}}

Plūsmas diagramma:

Piemērs:

izmantojot sistēmas nosaukumvietu Nosacījuma {klase Nested {public static void Main (string [] args) {int first = 7, second = -23, third = 13 if (first & gt second) {if (first

// Izeja:

13 ir vislielākais

Citādi, ja kāpnes

The ja-vēl-ja paziņojums tiek izmantots, lai izpildītu vienu kodu no vairākiem nosacījumiem. To sauc arī par vairāku ceļu lēmuma paziņojumu. Tā ir virkne if..else paziņojumu, kurā katrs if paziņojums ir saistīts ar else if paziņojumu un pēdējais būtu cits paziņojums.

Sintakse

if (nosacījums1) {// kods, kas jāizpilda, ja nosacījums1 ir patiess} cits, ja (nosacījums2) {// kods, kas jāizpilda, ja nosacījums2 ir patiess} cits, ja (nosacījums3) {// kods, kas jāizpilda, ja nosacījums3 ir patiess} ... cits {// kods, kas jāizpilda, ja visi nosacījumi ir nepatiesi}

Plūsmas diagramma:

Piemērs:

izmantojot sistēmas klasi 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 ir 15 ') else if (i == 20) Console.WriteLine (' i ir 20 ') else Console.WriteLine (' i nav klāt ')}}

// Izeja:

man ir 20

Pārslēgt paziņojumu

Slēdzis paziņojums darbojas kā aizstājējs garām kāpnēm, ja citādi, ja tiek pārbaudīts gadījumu saraksts. Slēdža paziņojumā ir viena vai vairākas gadījuma etiķetes, kuras tiek pārbaudītas pēc slēdža izteiksmes. Kad izteiksme sakrīt ar lietu, tiks izpildīti ar šo lietu saistītie paziņojumi.

Sintakse

slēdzis (mainīgais / izteiksme) {gadījuma vērtība1: // Izpildītie paziņojumi, ja izteiksme (vai mainīgais) = vērtība1 pārtraukuma gadījuma vērtība2: // Izpildījumi, ja izteiksme (vai mainīgais) = vērtība1 pārtraukums ... ... ... . ... ... noklusējums: // Izpildītie paziņojumi, ja neatbilst neviens gadījums}

Plūsmas diagramma:

Piemērs:

izmantojot sistēmas nosaukumvietu Nosacījums {class SwitchCase {public static void Main (string [] args) {char ch Console.WriteLine ('Enter a alphabet') ch = Convert.ToChar (Console.ReadLine ()) switch (Char.ToLower (ch )) {gadījums 'a': Console.WriteLine ('Patskaņa') pārtraukuma gadījums 'e': Console.WriteLine ('Patskaņa') pārtraukuma gadījums 'i': Console.WriteLine ('Patskaņa') pārtraukuma gadījums 'o': Console.WriteLine ('Patskaņa') pārtraukuma gadījums 'u': Console.WriteLine ('Patskaņa') pārtraukuma noklusējums: Console.WriteLine ('Nav patskaņa') pārtraukums}}}}

// Izeja:

Ievadiet alfabētu
ir
Patskaņa

Stīgas

Stīga Datatips ir Sistēma. Stīga Klase. Tas spēj saglabāt rakstzīmju veida datus. Mēs varam veikt dažādas darbības ar Stings, piemēram,savienošana, salīdzināšana, apakšvirkņu iegūšana, meklēšana, apgriešana, nomaiņa un daudz kas cits.

Stīgu un stīgu līdzība

C # Stīga un virkne ir līdzvērtīgi. Vārda virkne ir a atslēgvārdu un darbojas kā Sistēma. Stīga klasē. Stīgu deklarēšanai mēs varam izmantot jebkuru no versijām.

Sintakse:

string s1 = 'Edureka' // virknes izveide, izmantojot virknes atslēgas vārdu String s2 = 'Happy Learning' // virknes izveide, izmantojot virknes klasi

Piemērs:

izmantojot sistēmas publisko klasi 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 '} virkne s2 = jauna virkne (ch) Console.WriteLine ( s1) Console.WriteLine (s2)}}

// Izeja:

Edureka
Csharp apmācība

Stīgu metodes C #

Metode Apraksts
Klons () Izmanto, lai atgrieztu atsauci uz šo virknes gadījumu.
Salīdzināt (virkne, virkne) Izmanto, lai salīdzinātu divus norādītos virknes objektus.
Concat (stīga, stīga) Apvienojiet divus noteiktos virknes gadījumus.
Satur (virkne) Atgriež vērtību, kas norāda noteiktu apakšs virkni
Kopēt (virkne) Izmanto, lai izveidotu jaunu virknes instanci ar tādu pašu vērtību
CopyTo (Int, Char [], Int, Int) Kopē rakstzīmes no norādītās pozīcijas
Vienāds (virkne, virkne) Nosaka, ka diviem virknes objektiem ir vienāda vērtība.
Formāts (virkne, objekts) Nomainiet vienu vai vairākus formāta vienumus norādītajā virknē
IndexOf (virkne) Ziņo nulles bāzes indeksu pirmajam gadījumam
Ievietot (Int32, virkne) Atgriež jaunu virkni, kurā virkne ir ievietota indeksā.
IsInterned (virkne) Norāda, ka šī virkne ir Unicode normalizācijas formā C.
IsNullOrEmpty (virkne) Norāda, ka norādītā virkne ir nulle vai tukša virkne.
IsNullOrWhiteSpace (virkne) Izmanto, lai norādītu, vai norādītā virkne ir nulle, tukša,
Pievienoties (virkne, virkne []) Izmanto, lai savienotu visus virkņu masīva elementus
LastIndexOf (Char) Ziņo par pēdējās rakstzīmes nulles indeksu
LastIndexOfAny (Char []) Ziņo par pēdējās rakstzīmes nulles indeksu
Noņemt (Int32) Atgriež jaunu virkni, kurā ir visas rakstzīmes
Aizstāt (virkne, virkne) Atgriež jaunu virkni, kurā visi virknes gadījumi
Sadalīt (Char []) To izmanto, lai virkni sadalītu apakšstruktūrās
StartsWith (virkne) To izmanto, lai pārbaudītu, vai šīs virknes sākums
Substrings (Int32) To izmanto, lai izgūtu apakšvirkni no šī gadījuma.
ToCharArray () Kopē rakstzīmes šajā gadījumā Unicode masīvā.
ToString () To izmanto, lai atgrieztu virknes instanci.
Apgriezt () Apgriež virkni


Masīvi

Līdzīgi kā citās programmēšanas valodās, arī C # ir masīvi. Masīvi ir vienkāršas datu struktūras, kas paredzētas tā paša elementa datu veida glabāšanai blakus esošajā atmiņas vietā.

C # atbalsta šādus masīvu veidus.

  • Viendimensiju masīvs
  • Daudzdimensionāls masīvs
  • Pārspīlēts masīvs

Viendimensiju masīvs

Viendimensiju masīvs saglabā elementus vienas rindas formā.

Sintakse

int [] arr = new int [5] // masīva izveide

Piemērs:

izmantojot System public class ArrayPiemērs {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 par (int i = 0 i 

// Izeja:

10
divdesmit
30
40
piecdesmit

Daudzdimensionāls masīvs

Daudzdimensionāls masīvs saglabā elementus vairāku dimensiju veidā, piemēram, matricu un kubu utt.

Sintakse

int val = a [2,3]

Piemērs:

izmantojot System namespace 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 par (i = 0 i<5 i++) { for (j = 0 j < 2 j++) { Console.WriteLine('a[{0},{1}] = {2}', i, j, a[i, j]) } } Console.ReadKey() } } } 

// Izeja:

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

Pārspīlēts masīvs

Jagged Array ir vienkārši masīvu masīvs.

Piemērs:

izmantojot System namespace ArrayApplication {class MyArray {static void Main (string [] args) {int [] [] a = new int [] [] {new int [] {0,0}, new int [] {1,2 }, jauns int [] {2,4}, jauns int [] {3, 6}, jauns int [] {4, 8}} int i, j par (i = 0 i<5 i++) { for (j = 0 j < 2 j++) { Console.WriteLine('a[{0}][{1}] = {2}', i, j, a[i][j]) } } Console.ReadKey() } } } 

// Izeja:

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

Kolekcijas

Kolekciju var vienkārši uzskatīt par objektu grupu, kas savākta kopā, lai savāktajiem datiem piemērotu dažas funkcijas. Darbības, kuras kādreiz iespējams veic kolekcijā, ir

  • veikala objekts
  • atjaunināt objektu
  • dzēst objektu
  • izgūt objektu
  • meklēt objektu un
  • kārtot objektu

Kolekciju veidi

Ir trīs dažādas iespējas strādāt ar kolekcijām. Trīs nosaukumvietas ir minētas zemāk:

  • Sistēma. Kolekcijas. Vispārīgi klases
  • Sistēma. Kolekcijas klases
  • Sistēma. Kolekcijas. Vienlaicīga klases

System.Collections.Generic klasē ir šādas klašu šķirnes:

  • Saraksts
  • Kaudze
  • Rinda
  • LinkedList
  • HashSet
  • SortedSet
  • Vārdnīca
  • SortedDictionary
  • SortedList

The Sistēma. Kolekcijas klases tiek uzskatītas par mantotajām klasēm. tie ietver šādas klases.

  • ArrayList
  • Kaudze
  • Rinda
  • Hashtable

The Sistēma. Kolekcijas. Vienlaicīga klasesnosaukumvieta nodrošina klases pavedieniem drošām darbībām. Tagad vairāki pavedieni neradīs problēmu, lai piekļūtu kolekcijas vienumiem. šajā klasē pieejamās klases ir:

  • BlockingCollection
  • Vienlaicīgs soma
  • Vienlaicīga kaudze
  • Vienlaicīga rinda
  • Vienlaicīga vārdnīca
  • Starpsienas
  • Starpsienas
  • OrderablePartitioner

Saraksts

The sarakstā tiek uzskatīta par datu struktūru, kas pieejama Sistēma. Kolekcija. Ģenerika nosaukumvieta. Tas var uzglabāt un ienest elementus. Sarakstā var saglabāt dublētus elementus.

Piemērs:

izmantojot sistēmu, izmantojot System.Collections.Generic public class Edureka {public static void Main (string [] args) {var names = new List () names.Add ('Sandhya') names.Add ('Arun') names.Add ( 'Prashanth') vārdi. Pievienojiet ('Kiran') foreach (mainīgais nosaukums nosaukumos) {Console.WriteLine (name)}}}

// Izeja:

Sandhya
Arun
Prashanth
Kirāns

Hash Set

C # HashSetkategorija bieži tiek izmantotaveikals,atņemtvailasīt komponentus. Tānavveikala dublikātskomponentiem.tas tiek mudinātsizmantot HashSet kategorijājatev irglabāttikai īpatnējs komponentiem . tas ir atrodams System.Collections.Generic vārdu telpā.

Piemērs:

izmantojot sistēmu, izmantojot System.Collections.Generic public class Edureka {public static void Main (string [] args) {var names = new HashSet () names.Add ('Sunil') names.Add ('Amar') names.Add ( 'Pujari') vārdi. Pievienojiet ('Imran') vārdus. Pievienojiet ('karan') foreach (vārdu nosaukums nosaukumos) {Console.WriteLine (name)}}}

// Izeja:

Sunil
Amar
Pujari
Imrans
karan

Kārtots komplekts

C # SortedSetklase bieži ir pieradušiveikals, noņemt vai lasīt elementi . Tas uztur augšupejošu kārtību unnavveikala dublikātselementi.tas ir ātrsizmantot SortedSetkategorijājatev irglabāt īpatnējs komponentiem un saglabāt augšupejošo kārtību.tas iratrodams System.Collections.Generic vārdu telpā.

Piemērs:

izmantojot sistēmu, izmantojot System.Collections.Generic public class Edureka {public static void Main (string [] args) {var names = new SortedSet () names.Add ('Sanjay') names.Add ('Anuradha') names.Add ( 'Praveen') vārdi. Pievienojiet ('Ravi') vārdus. Pievienojiet ('Kajol') foreach (mainīgais nosaukums nosaukumos) {Console.WriteLine (name)}}}

// Izeja:

Anuradha
Kajols
Prāvens
Ravi
Sandžajs

Kaudze

The kaudze ir vienkārša kolekcija, kas seko EDGE vai pirmā pēdējā procedūra, apstrādājot tajā saglabātos elementus.

Piemērs:

izmantojot sistēmu, izmantojot 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') vārdi. Push ('Rajesh') vārdi. Push ('kumar') foreach (virknes nosaukums nosaukumos) {Console.WriteLine (name)} Console.WriteLine ('Peek elements:' + vārdi. Peek () ) Console.WriteLine ('Pop:' + nosaukumi.Pop ()) Console.WriteLine ('Pēc pop, Peek elements:' + nosaukumi.Peek ())}}

// Izeja:

kumar
Radžešs
Džeimss
Pooja
Čandans
Peek elements: kumar
Pop: kumar
Pēc Pop, Peek elementa: Rajesh

Rinda

Rinda ir pilnīgi līdzīga kaudzei, taču vienīgā atšķirība ir tā, ka seko rinda FIFO vai princips “pirmais iekšā un pirmais ārā”, apstrādājot tajā saglabātos elementus.

Piemērs:

izmantojot sistēmu, izmantojot System.Collections.Generic public class Edureka {public static void Main (string [] args) {Queue names = new Queue () names. Enikeue ('Srujan') names.Enqueue ('Prajat') names.Enqueue ( 'John') vārdi. Enqueue ('Raju') vārdi. Enqueue ('Hari') foreach (virknes nosaukums nosaukumos) {Console.WriteLine (name)} Console.WriteLine ('Peek elements:' + vārdi.Peek () ) Console.WriteLine ('Dequeue:' + nosaukumi.Dequeue ()) Console.WriteLine ('After Dequeue, Peek elements:' + nosaukumi.Peek ())}}

// Izeja:

Srujans
Prajat
Džons
Sīva
Diena
Peek elements: Srujan
Dequeue: Srujan
Pēc Dequeue, Peek elements: Prajat

Saistītais saraksts

Saistītais saraksts ir dinamiska atmiņas kolekcija. Elementi sarakstā Saistītie tiek saglabāti, piekļūstot atmiņai no kaudzes un saglabājot elementus nepārtrauktā secībā, saistot to adreses.

Piemērs:

izmantojot sistēmu, izmantojot 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') vārdi. AddLast ('jay') vārdi. AddDiright ('sai') foreach (main name nosaukumos) {Console.WriteLine (name)}}}

// Izeja:

sai
Robežas
Arun
Prakašs
jay

Vārdnīca

Vārdnīca kategorijāizmantoidejano hashtable. Tas saglabā vērtības vietnēpriekšnoteikumsatslēgu. Tas saturīpatnējstaustiņustikai. Autorspalīdzībuno atslēgas,mēs vienkāršimeklēt vaiatņemt elementus.tas iratrodams System.Collections.Generic vārdu telpā.

Piemērs:

izmantojot sistēmu, izmantojot System.Collections.Generic public class Edureka {public static void Main (string [] args) {Dictionary names = new Dictionary () names. Add ('1', 'Shiva') names.Add ('2', 'Prasad') vārdi. Pievienojiet ('3', 'Preetam') vārdus. Pievienojiet ('4', 'Roy') vārdus. Pievienojiet ('5', 'Akash') foreach (KeyValuePair kv nosaukumos) {Console. WriteLine (kv.Key + '' + kv.Value)}}}

// Izeja:

1 Šiva
2 Prasad
3 Preetam
4 Rojs
5Akašs

Kārtota vārdnīca

The SortedDictionary kategorijāizmantodizainsno hashtable. Tas saglabā vērtības vietnēidejaatslēgu. Tas saturīpatnējstaustiņus un uztur augšupejošu secībuidejaatslēgu. Autorspalīdzībuno atslēgas,mēs vienkāršimeklēt vaiatņemt elementus.tas iratrodams System.Collections.Generic vārdu telpā.

Piemērs:

izmantojot sistēmu, izmantojot System.Collections.Generic public class Edureka {public static void Main (string [] args) {SortedDictionary names = new SortedDictionary () names. Add ('1', 'Arun') names.Add ('4', 'Vishal') vārdi. Pievienojiet ('5', 'Ramesh') vārdus. Pievienojiet ('3', 'Vidya') vārdus. Pievienojiet ('2', 'Pallavi') foreach (KeyValuePair kv nosaukumos) {Console. WriteLine (kv.Key + '' + kv.Value)}}}

// Izeja:

1 Šiva
2 Prasad
3 Preetam
4 Rojs
5Akašs

Kārtots saraksts

The SortedList iranatslēgu / vērtību pāru masīvs. Tas saglabā vērtības vietnēpriekšnoteikumsatslēgu. Kārtotais sarakstskategorijāsaturīpatnējstaustiņus un uztur augšupejošu secībupriekšnoteikumsatslēgu. Autorspalīdzībuno atslēgas,mēs spējam vienkāršimeklēt vai noņemtelementi.tas iratrasts Sistēma. Kolekcijas. Vispārīgi nosaukumvieta.

Piemērs:

izmantojot sistēmu, izmantojot System.Collections.Generic public class Edureka {public static void Main (string [] args) {SortedDictionary names = new SortedDictionary () names. Add ('1', 'Arun') names.Add ('4', 'Vishal') vārdi. Pievienojiet ('5', 'Ramesh') vārdus. Pievienojiet ('3', 'Vidya') vārdus. Pievienojiet ('2', 'Pallavi') foreach (KeyValuePair kv nosaukumos) {Console. WriteLine (kv.Key + '' + kv.Value)}}}

// Izeja:

1 Aruns
2 Pallavi
3 Vidja
4 Vishal
5Ramesh

Struktūra

Struktūra ir lietotāja definēts datu tips, kas paredzēts dažādu datu tipu vairāku elementu glabāšanai. Struktūra tiek deklarēta, izmantojot atslēgvārdu struktur.

Piemērs:

izmantojot sistēmas struktūras grāmatas {public string public public string author public string subject 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 ++ programmēšanas apmācība 'Book1.book_id = 95908978 Book2.title =' Telecom Billing 'Book2.author =' Karan 'Book2.subject =' Telecom norēķinu apmācība 'Book2.book_id = 18674900 Console.WriteLine ( '1. grāmatas nosaukums: {0}', grāmatas1.nosaukums) Console.WriteLine ('1. grāmatas autors: {0}', Book1.author) konsole.WriteLine ('1. grāmatas tēma: {0}', Book1.subject) Console.WriteLine ('1. grāmatas book_id: {0}', Book1.book_id) konsole.WriteLine ('2. grāmatas nosaukums: {0}', Book2.title) konsole.WriteLine ('2. grāmatas autors: {0}', Book2.author) Console.WriteLine ('2. grāmatas tēma: {0}', Book2.subject) Console.WriteLine ('2. grāmatas book_id: {0}', Book2.book_id) konsole.ReadKey ()}}

// Izeja:

1. grāmatas nosaukums: C # programmēšana
1. grāmata Autore: Ramchandra Kumar
1. grāmatas priekšmets: C ++ programmēšanas apmācība
1. grāmata book_id: 95908978
2. grāmatas nosaukums: Telekomunikāciju rēķini
2. grāmata Autors: Karan
2. grāmatas tēma: Telekomunikāciju norēķinu apmācība
2. grāmata book_id: 18674900

Funkcijas

Funkcija ir definēta kā galvenā koda bloks. Funkcija tiek izmantota kodu blokā norādīto paziņojumu izpildei. Funkcija sastāv no šādiem komponentiem.

  • Funkcijas nosaukums: Tas ir atšķirīgs nosaukums, ko izmanto funkciju izsaukšanai.
  • Atgriešanas veids: Tas norāda funkcijas atgriešanās vērtības datu tipu.
  • Ķermenis: Tas satur izpildāmos paziņojumus.
  • Piekļuves specifikators: Tas norāda funkciju pieejamību lietojumprogrammā.
  • Parametri: Tas ir argumentu saraksts, ko mēs varam nodot funkcijai zvana laikā.

Sintakse

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

Piemērs:

izmantojot sistēmas nosaukumvietu FunkcijaPiemērs {class Edureka {public string Show (string message) {Console.WriteLine ('Inside Show Function') return message} static void Main (string [] args) {Edureka program = new Edureka () string message = program .Show ('Edureka') Console.WriteLine ('Welcome' + ziņojums)}}}

// Izeja:

Inside Show funkcija
Laipni lūdzam Edurekā

Funkcijas var izpildīt 3 dažādos veidos:

  • Zvans pēc vērtības
  • Zvans ar atsauci
  • Ārējais parametrs

Zvans pēc vērtības

C #, vērtība -tips parametriemiršī piespēlekopijasākotnējā vērtībafunkciju vietāatsauce. Tānavmodificētpirmā vērtība. Anizveidots grozījumspagājisvērtība navVecumskonkrētā vērtība.ietvarosšāds piemērs,mums irizietvērtība visāzvanu.

Piemērs:

izmantojot sistēmas nosaukumvietu CallByValue {class Edureka {public void Show (int val) {val * = val Console.WriteLine ('Vērtība šova funkcijas iekšpusē' + val)} static void Main (string [] args) {int val = 50 Edureka programma = jauna Edureka () Console.WriteLine ('Vērtība pirms funkcijas izsaukšanas' + val) programma. Rādīt (val) Console.WriteLine ('Vērtība pēc funkcijas izsaukšanas' + val)}}}

// Izeja:

Vērtība pirms funkcijas 50 izsaukšanas
Izrādes funkcijas vērtība 2500
Vērtība pēc funkcijas 50 izsaukšanas

Zvans ar atsauci

Sarakstā ar atsauces metodiuz atsauce atslēgvārdu, lai argumentu nodotu kā atsauces tipu. Tas nodod argumentu atsauci uz funkciju, nevis sākotnējās vērtības kopiju. Izmaiņas nodotajās vērtībās ir pastāvīgas un modificēt sākotnējā mainīgā vērtība.

Piemērs:

izmantojot sistēmas nosaukumvietu CallByReference {class Edureka {public void Show (ref int val) {val * = val Console.WriteLine ('Vērtība šova funkcijas iekšpusē' + val)} static void Main (string [] args) {int val = 50 Edureka programma = jauna Edureka () Console.WriteLine ('Vērtība pirms funkcijas izsaukšanas' + val) programma. Rādīt (ref val) Console.WriteLine ('Vērtība pēc funkcijas izsaukšanas' + val)}}}

// Izeja:

Vērtība pirms funkcijas 50 izsaukšanas
Izrādes funkcijas vērtība 2500
Vērtība pēc funkcijas izsaukšanas 2500

Ārējais parametrs

Out parametrsnodrošina ārā atslēgvārds, lai nodotu argumentus kā ārpus tipa. Tas ir kā atsauces tips, izņemot to, ka tas neprasa mainīgā inicializēšanu pirms nodošanas. Mums ir jāizmanto ārā atslēgvārdu, lai argumentu nodotu kā out-type. Tas ir noderīgi, ja mēs vēlamies, lai funkcija atgrieztu vairākas vērtības.

Piemērs:

izmantojot System namespace 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 ('Vērtība pirms mainīgā' + val 'izlaišanas). Parādīt (out val) Console.WriteLine (' Vērtība pēc mainīgā lieluma saņemšanas '+ val)}}}

// Izeja:

Vērtība pirms mainīgā 50 izlaišanas

Vērtībapēc ārējā mainīgā 25 saņemšanas

Tagad ļaujiet mums pāriet uz objektorientētu programmēšanu

Uz objektu orientēta programmēšana

Objektorientēta programmēšana Sistēmair programmēšanas paradigma, kuras pamatā ir objektiem kas satur datu dalībnieki un metodes kas saistīti ar viņiem. Objektorientētās programmēšanas galvenais mērķis ir palielināt programmu elastību un uzturamību

Objektorientētās programmēšanas iezīmes:

  • Tas vairāk uzsver datus, nevis procedūras.
  • Programmas ir sadalītas objektos, tādējādi padarot to viegli strādāt.
  • Datu struktūras ir veidotas tā, lai tās raksturotu objektus.
  • Funkcijas, kas darbojas ieslēgtsobjekta dati tiek ievietoti datu struktūrā kopā.
  • Dati ir paslēpti, un bez atļaujas tiem nevar piekļūt ar ārējām funkcijām.
  • Saziņa starp objektiem var notikt ar funkciju palīdzību.
  • Jaunu datu un funkciju pievienošana ir kļuvusi vienkārša.
  • Programmas izstrādē ievēro augšupēju pieeju.

Uz objektu orientētās paradigmas C # ir šādas

Uzskaitījums C #

Enum vai arī sauc par uzskaitījums C # tiek izmantots, lai saglabātu nemainīgas vērtības, nemainot tās visas C # programmas izpildes laikā. Tātiek izmantots, lai uzglabātu nosaukto konstantu kopu, piemēram, sezona, dienas, mēnesis, lielums utt

Piemērs:

izmantojot System public class EnumExample {public enum week {pirmdiena, otrdiena, trešdiena, ceturtdiena, piektdiena, sestdiena, svētdiena} public static void Main () {int x = (int) nedēļa. Pirmdiena int y = (int) nedēļa. Piektdienas konsole .WriteLine ('Monday = {0}', x) Console.WriteLine ('Friday = {0}', y)}}

// Izeja:

Pirmdiena = 0
Piektdiena = 4

Uz objektu orientēta programmēšanas pieeja

Uz objektu orientētu programmēšanas stilu var panākt, ievērojot tālāk aprakstītās metodes.

Iekapsulēšana

Iekapsulēšana ir metode, kā apvienot metodes kopā ar viņu datu dalībnieki.

Piemērs:

izmantojot sistēmas nosaukumvietu Edureka {klase Taisnstūris {publiskais dubultā garuma publiskais dubultplatums publiskais dubultā GetArea () {atgriešanās garums * platums} publiskais tukšums Display () {Console.WriteLine ('Garums: {0}', garums) Console.WriteLine ( Platums: {0} ', width) Console.WriteLine (' Area: {0} ', GetArea ())}} class ExecuteRectangle {static void Main (string [] args) {Taisnstūris r = jauns Taisnstūris () r.length = 50 r. Platums = 35 r. Displejs () Console.ReadLine ()}}}

// Izeja:

Garums: 50
Platums: 35
Platība: 1750. gads

Abstrakcija

Abstrakcija ir metode paslēpties sarežģītā kodēšanas daļa no lietotāja, sniedzot viņam tikai nepieciešamo nepieciešamo informāciju.

Piemērs:

izmantojot System public abstract class Shape {public abstract void draw ()} public class Taisnstūris: Shape {public override void draw () {Console.WriteLine ('drawing rectangle ...')}}} public class Circle: Shape {public override void izdarīt () {Console.WriteLine ('zīmēšanas aplis ...')}} publiskā klase TestAbstract {public static void Main () {Shape ss = new Taisnstūris () s.draw () s = new Circle () s.draw ()}}

// Izeja:

zīmēšanas taisnstūris ...
zīmēšanas aplis ...

Saskarne

kā izveidot paketi Java

The interfeiss ir pilnīgi līdzīgs Abstrakcijai. Saskarnes funkcionalitāte ir paslēpt nesvarīgos datus no lietotāja un sniegt viņam vienīgos svarīgos datus, kas viņam nepieciešami.

Piemērs:

izmantojot sistēmas publisko saskarni Drawable {void draw ()} public class Taisnstūris: Drawable {public void draw () {Console.WriteLine ('drawing rectangle ...')}} public class Circle: Drawable {public void draw () {Console .WriteLine ('zīmēšanas aplis ...')}} public class TestInterface {public static void Main () {Drawable dd = new Taisnstūris () d.draw () d = new Circle () d.draw ()}}

// Izeja:

zīmēšanas taisnstūris ...
zīmēšanas aplis ...

Polimorfisms

Polimorfismsir kombinācija “Poli” + “Morphs” kas nozīmē daudzas formas. Tas ir grieķu vārds. Tas nozīmē, ka koda segments var aizņemt vairākas formas. Mums ir divu veidu polimorfisms.

  • Apkopot laika polimorfismu
  • Skriešanas laika polimorfisms

Piemērs:

izmantojot sistēmu 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.krāsa)}}

// Izeja:

balts

Mantojums

Mantojums ir process, kurā viens objekts automātiski iegūst visas sava vecākā objekta īpašības un uzvedību. Jūs varat atkārtoti izmantot, paplašināt vai modificēt atribūtus un uzvedību, kas definēta citā klasē. tiek saukta klase, kas pārmanto citas klases biedrus atvasināta klase un klasi, kuras locekļi ir mantoti, sauc par bāze klasē. Atvasinātā klase ir specializētā klase bāzes klasei.

Viena līmeņa mantojuma piemērs

izmantojot System namespace RectangleApplication {class Taisnstūris {aizsargāts dubultā garuma aizsargāts dubultplatums publisks taisnstūris (dubultā l, dubultā w) {garums = l platums = w} publiskais dubultā GetArea () {atgriešanās garums * platums} public void Display () {konsole. WriteLine ('Length: {0}', length) Console.WriteLine ('Width: {0}', width) Console.WriteLine ('Area: {0}', GetArea ())}} class Tabletop: Taisnstūris {private double cost public Tabletop (double l, double w): base (l, w) {} public double getCost () {double cost cost = GetArea () * 70 return cost} public void Display () {base.Display () Console .WriteLine ('Izmaksas: {0}', GetCost ())}}} klases ExecuteRectangle {static void Main (string [] args) {Tabletop t = new Tabletop (4.5, 7.5) t.Display () Console.ReadLine () }}}

// Izeja:

Garums: 4.5
Platums: 7.5
Platība: 33.75
Izmaksas: 2362,5

Daudzlīmeņu mantojuma piemērs

izmantojot sistēmas nosaukumvietu InheritanceApplication {class Shape {public void setWidth (int w) {width = w} public void setHeight (int h) {height = h} aizsargāts int platums aizsargāts int augstums} publiskais interfeiss PaintCost {int getCost (int area)} klases taisnstūris: forma, PaintCost {public int getArea () {return (width * height)} public int getCost (int area) {return area * 70}} class RectangleTester {static void Main (string [] args) {Taisnstūris Rect = jauns taisnstūris () int apgabals Rect.setWidth (5) Rect.setHeight (7) apgabals = Rect.getArea () Console.WriteLine ('Kopējais laukums: {0}', Rect.getArea ()) Console.WriteLine ('Kopā krāsas izmaksas: $ {0} ', Rect.getCost (apgabals)) Console.ReadKey ()}}}

// Izeja:

Kopējā platība: 35
Kopējās krāsas izmaksas: 2450 USD

Pārslodze

Pārslodze ir situācija, kad mums ir divi vai dalībnieki, kas deklarēti, izmantojot to pašu vārdu. Pārslodze ir iespējama arī tad, ja mēs deklarējam divas vai vairākas metodes ar tādu pašu nosaukumu. Pārbaudīsim abu piemērus.

Locekļu pārslodze

Piemērs:

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

// Izeja:

35
60

Metode Pārslodze

Piemērs:

izmantojot 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 TestMemberOerloading {public static void Main ( ) {Console.WriteLine (Edureka.add (12, 23)) Console.WriteLine (Edureka.add (12.4f, 21.3f))}}

// Izeja:

35
33.699997

Galvenais

Svarīgāka ir situācija, kad bērnu klasē tiek definēta tā pati metode, kuru definē arī vecāki. Ļaujiet mums to saprast, izmantojot nelielu piemēru.

Piemērs:

izmantojot 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 () {suns d = jauns suns () d.eat ()}}

// Izeja:

Ēdot ēdienu

Vārdamvieta

The nosaukumvieta galvenokārt tiek izmantots, lai apstrādātu vairākas programmā esošās klases. Vārdvieta ir pieejama dažādos veidos.

  • Sistēma. Konsole: Lūk, Sistēma kļūst par nosaukumvietu
  • Lai piekļūtu nosaukumvietas klasei, mums tas jāizmanto namespacename.classname.
  • Mēs varam izmantot izmantojot atslēgvārdu.

Piemērs:

izmantojot sistēmu, izmantojot First, izmantojot otro nosaukumvietu First {public class Edureka {public void sayWelcome () {Console.WriteLine ('Welcome to Edureka')}}}} nosaukumvieta Second {public class Happy_Learning {public void sayWishes () {Console.WriteLine (' Laimīgu mācīšanos ')}}} publiskās klases nosaukumvieta {public static void Main () {Edureka h1 = new Edureka () Happy_Learning w1 = new Happy_Learning () h1.sayWelcome () w1.sayWishes ()}}

// Izeja:

Laipni lūdzam Edurekā
Laimīgu mācīšanos

Failu darbības

The failu darbības pieejami C #, ir šādi:

Darbība Apraksts
BinaryReader Izlasa primitīvus datus no bināras plūsmas.
BinaryWriter Raksta primitīvus datus binārā formātā.
BufferedStream Pagaidu baitu straumes glabāšana.
Katalogs Palīdz manipulēt direktoriju struktūrā.
DirectoryInfo Izmanto operāciju veikšanai direktorijos.
DriveInfo Sniedz informāciju par diskiem.
Fails Palīdz manipulēt ar failiem.
FileInfo Izmanto, lai veiktu darbības ar failiem.
FileStream Izmanto, lai lasītu un rakstītu uz jebkuru faila vietu.
MemoryStream Izmanto nejaušai piekļuvei atmiņā saglabātiem straumētiem datiem.
Ceļš Veic darbības ar ceļa informāciju.
StreamReader Izmanto rakstzīmju lasīšanai no baitu straumes.
StreamWriter Tiek izmantots rakstzīmju ierakstīšanai straumē.
StringReader Tiek izmantots lasīšanai no virknes bufera.
StringWriter Tiek izmantots rakstīšanai virknes buferī.

FileMode

The FileMode ir skaitītājs, kas nosaka vairākas failu atvēršanas metodes. FileMode Enumerator dalībnieki ir aprakstīti šādi:

  • Pievienot: Tas atver esošo failu un novieto kursoru faila beigās vai izveido failu, ja faila nav.
  • Izveidot: Tas ir paredzēts, lai izveidotu jaunu failu.
  • Izveidot jaunu: Tas ir paredzēts operētājsistēmai norādīt, ka tai jāizveido jauns fails.
  • Atvērts: Tas ir paredzēts esoša faila atvēršanai.
  • OpenOrCreate: Tas ir paredzēts, lai norādītu operētājsistēmu, kurai tai jāatver fails, ja tāds pastāv, pretējā gadījumā tam jāizveido jauns fails.
  • Saīsināt: Saīsināt atver esošo failu un saīsina tā lielumu līdz nulle baitiem.

FileAccess

FileAccess Skaitītājs tiek izmantots, lai iegūtu piekļuvi noteiktam failam. Tajā ir šādi dalībnieki.

  • Lasīt
  • Rakstiet
  • Lasīt rakstīt

FileShare

The Failu koplietošana Skaitītāju izmanto, lai koplietotu konkrētu failu. Tajā ir šādi dalībnieki.

  • Mantojams: Mantojamība ļauj faila rokturim nodot mantojumu bērna procesiem.
  • Nav: Neviens neatsaka pašreizējā faila kopīgošanu
  • Lasīt: Lasīt ļauj atvērt failu lasīšanai.
  • Lasīt rakstīt: ReadWrite ļauj atvērt failu lasīšanai un rakstīšanai.
  • Rakstīt: Rakstīšana ļauj atvērt failu rakstīšanai.

Notikumi

Notikumu parasti sauc par darbību, kuru ģenerē lietotājs. Tas var būt peles klikšķis un pat viens taustiņa nospiešana no tastatūras. Līdzīgi arī C # programmās ir notikumi. Notikuma ģeneratoru sauc par izdevējs un notikuma uztvērēju sauc par abonents.

Izdevējs

TO izdevējs satur notikuma un delegāta definīciju. The pasākuma delegāts asociācija ir definēta šajā objektā. A izdevējs klases objekts izsauc notikumu, un par to tiek paziņots citiem objektiem.

Abonents

TO abonents pieņem pasākumu un nodrošina pasākumu vadītājs. The deleģēt izdevēju klasē izsauc metodi / notikumu apdarinātājs abonentu klases.

Piemērs:

izmantojot sistēmas nosaukumvietu Edureka {public delegate string Del (string str) class EventBlock {event Del NewEvent public EventBlock () {this.NewEvent + = new Del (this.WelcomeUser)} public string WelcomeUser (string userername) {return 'Welcome to Edureka . '+ lietotājvārds} static void Main (string [] args) {EventBlock obj1 = new EventBlock () string string = obj1.NewEvent (' Happy Learning ') Console.WriteLine (result)}}}

// Izeja:

Laipni lūdzam Edurekā. Laimīgu mācīšanos

Generics

Generics ir jēdziens, kā klases dalībniekiem un metodēm nodrošināt vietas īpašniekus Izpildes laiks. Mēs varam definēt Generics, izmantojot iekavās. Apskatīsim šādus piemērus.

Generics klasē

izmantojot System namespace Edureka {class GenericClass {public GenericClass (T msg) {Console.WriteLine (msg)}} klases programma {static void Main (string [] args) {GenericClass gen = new GenericClass ('Šis ziņojums ir no generic klases' ) GenericClass genI = new GenericClass (123) GenericClass getCh = new GenericClass ('E')}}}

// Izeja:

Šis ziņojums ir no vispārējās klases
123. lpp
IS

Generics in a Method

izmantojot System namespace Edureka {class GenericClass {public void Show (T msg) {Console.WriteLine (msg)}} klases programma {static void Main (string [] args) {GenericClass genC = new GenericClass () genC.Show ('Tas ziņojums ir no vispārīgās metodes ') genC.Show (321) genC.Show (' H ')}}}

// Izeja:

Šis ziņojums ir no vispārīgās metodes
321
H

Delegāti

The Delegāts darbojas kā atsauce uz metodi. Būtībā tas ir tāds pats kā a funkciju rādītājs C un C ++, bet daudz labāki un drošāki par tipu. Delegāts statiskā metode iekapsulē tikai metodi. Kamēr delegāts instancē metode ietver gan metodi, gan gadījumu. Vislabākā deleģētā persona ir izmantot kā notikumu.

Piemērs:

izmantojot System delegate int Kalkulators (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 numurs} public static int getNumber () {return number} public static void Main (string [] args) {Kalkulators c1 = jauns kalkulators (pievienot) kalkulators c2 = jauns kalkulators (mul) c1 (20) konsole.WriteLine ('Pēc kalkulatora viens delegāts, jaunais numurs ir: '+ getNumber ()) c2 (3) Console.WriteLine (' Pēc divu delegātu kalkulatora jaunais numurs ir: '+ getNumber ())}}

// Izeja:

Pēc viena delegāta kalkulatora jaunais numurs ir: 45
Pēc divu delegātu kalkulatora jaunais skaitlis ir: 135

Pārdomas

Pārdomas ir nepieciešamas, lai izpildes laikā iegūtu metadatus. Atsauce ir pieejama Sistēma. Pārdomas nosaukumvieta. Lai to izpildītu, ir nepieciešamas šādas klases.

  • Tips
  • MemberInfo
  • ConstructorInfo
  • MethodInfo
  • FieldInfo
  • PropertyInfo
  • TypeInfo
  • EventInfo
  • Modulis
  • Montāža
  • AssemblyName
  • Rādītājs

Tipa klase

C # Type class apzīmē klases tipu, interfeisa tipu, uzskaitījuma tipu, masīvu tipu, vērtību tipu deklarācijas

Ierakstiet Rekvizīti

Zemāk ir minēts Type klases svarīgo īpašību saraksts.

Īpašums Apraksts
Montāža Iegūst šāda veida asambleju.
AssemblyQualifiedName Tiek iegūts asamblejas kvalificētais nosaukums šim tipam.
Atribūti Iegūst ar tipu saistītos atribūtus.
BaseType Iegūst pamata vai vecāku tipu.
Pilnais vārds Iegūst pilnībā kvalificētu tipa nosaukumu.
IsAbstrakti tiek izmantots, lai pārbaudītu, vai tips ir abstrakts.
IsArray tiek izmantots, lai pārbaudītu, vai tips ir Masīvs.
IsClass tiek izmantots, lai pārbaudītu, vai tips ir Klase.
IsEnum tiek izmantots, lai pārbaudītu, vai tips ir Enum.
IsInterface tiek izmantots, lai pārbaudītu, vai tips ir Interfeiss.
IsNested tiek izmantots, lai pārbaudītu, vai tips ir ligzdots.
IrPrimitīvs tiek izmantots, lai pārbaudītu, vai tips ir primitīvs.
IsPointer tiek izmantots, lai pārbaudītu, vai tips ir rādītājs.
IsNotPublic tiek izmantots, lai pārbaudītu, vai tips nav publisks.
IsPublic tiek izmantots, lai pārbaudītu, vai tips ir Publisks.
Ir noslēgts tiek izmantots, lai pārbaudītu, vai tips ir noslēgts.
IsSerializable tiek izmantots, lai pārbaudītu, vai tips ir seriālizējams.
MemberType tiek izmantots, lai pārbaudītu, vai tips ir Nested tipa dalībnieka tips.
Modulis Iegūst tipa moduli.
Nosaukums Iegūst tipa nosaukumu.
Vārdamvieta Iegūst veida nosaukumvietu.
Īpašums Apraksts
GetConstructors () Atgriež visus publiskos konstruktora veidus.
GetConstructors (BindingFlags) Atgriež visus tipa konstruktorus ar norādītajiem BindingFlags.
GetFields () Atgriež visus veida publiskos laukus.
GetFields (BindingFlags) Atgriež visus publiskos konstruktora veidus ar norādītajām BindingFlags.
GetMembers () Atgriež visus publiskos locekļus pēc veida.
GetMembers (BindingFlags) Atgriež visus locekļus tipam ar norādītajām BindingFlags.
GetMethods () Atgriež visas veida publiskās metodes.
GetMethods (BindingFlags) Atgriež visas veida metodes ar norādītajām BindingFlags.
GetProperties () Atgriež visus veida publiskos īpašumus.
GetProperties (BindingFlags) Atgriež visus rekvizītus tipam ar norādītajām BindingFlags.
GetType () Iegūst pašreizējo veidu.
GetType (virkne) Iegūst vārda veidu.

Pārdomu piemēri:

Iegūt veidu

Piemērs:

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

// Izeja:

System.Int32

Saņemiet montāžu

Piemērs:

izmantojot sistēmu, izmantojot sistēmu System.Reflection public class GetAssembly {public static void Main () {Type t = typeof (System.String) Console.WriteLine (t.Assembly)}}

// Izeja:

System.Private.CoreLib, versija = 4.0.0.0, kultūra = neitrāla, PublicKeyToken = 7cec85d7bea7798e

Informācija par drukas veidu

Piemērs:

izmantojot sistēmu, izmantojot 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)}}

// Izeja:

Patiesi
Nepatiesa
Nepatiesa

Drukas konstruktori

Piemērs:

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

// Izeja:

Sistēmas konstruktori. Stīgu tips ...
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])

Drukas metodes

Piemērs:

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

// Izeja:

Sistēmas metodes. Stīgas tips ...
System.String Replace (System.String, System.String)
System.String [] Split (Char, System.StringSplitOptions)
System.String [] Split (Char, Int32, System.StringSplitOptions)
System.String [] Sadalīt (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) ......

Drukāt laukus

Piemērs:

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

// Izeja:

Sistēmas lauki. Stīgas tips ...
System.String tukšs

Tagad pārejiet pie dažiem uzlabotiem C # programmēšanas jēdzieniem

Uzlabotas C # koncepcijas

Anonīma funkcija

Tiek saukta funkcija, kurai trūkst konkrēta nosaukuma Anonīms Funkcijas. C # formātā ir pieejami divi anonīmo funkciju veidi

  • Lambda izteicieni
  • Anonīmās metodes

Piemērs:

izmantojot sistēmas nosaukumvietu 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)}}}

// Izeja:

Kvadrāts: 625

Anonīmās metodes

The anonīma metode nodrošina tādu pašu funkcionalitāti kā a lambda izteiksme, izņemot to, ka tas ļauj mums ignorēt parametru sarakstu.

Piemērs:

izmantojot sistēmas nosaukumvietu AnonymousMethods {klases programma {public delegate void AnonymousFun () static void Main (string [] args) {AnonymousFun fun = delegate () {Console.WriteLine ('This is anonymous function')} fun ()}}}

// Izeja:

Šī ir anonīma funkcija

Multi-Threading

Daudzlīniju vītne ir process, kurā dažādiem uzdevumiem tiek izveidoti un piešķirti vairāki pavedieni. tas ietaupa laiku, veicot vairākus darbus vienlaikus. Vairāku pavedienu klase ir pieejama Sistēma. Vītne nosaukumvieta.

Sistēma. Vārdvietas vītne

The Sistēma. Vītne vārdu telpā ir klases un saskarnes, lai atvieglotu daudzsavienojumu. Tas nodrošina klases, lai sinhronizētu pavedienu resursu. Zemāk ir sniegts visbiežāk izmantoto klašu saraksts:

  • Vītne
  • Mutex
  • Taimeris
  • Monitor
  • Semafors
  • ThreadLocal
  • ThreadPool
  • Nepastāvīgs

Process un pavediens

Process ir faktiski un pieteikumu un tas tiek uzskatīts par smagsvars komponents. No otras puses, pavediens ir viens vienīgs modulis no visa pieteikuma. Tas ir viegls salīdzinot ar procesu

Vītnes dzīves cikls

Katram pavedienam ir dzīves cikls. Vītnes dzīves cikls ir definēts sistēmā System.Threading.Thread. Tālāk ir norādīti jebkura pavediena dzīves cikla posmi.

  • Nesākts
  • Skrienams (gatavs darbam)
  • Skriešana
  • Nav skrienams
  • Miris

Vītnes klase nodrošina šādas īpašības un metodes šādi.

Vītnes īpašības

Īpašums Apraksts
CurrentThread atgriež pašreiz darbojošās pavediena instanci.
Ir dzīvs pārbauda, ​​vai pašreizējais pavediens ir dzīvs vai nē.
IsBackground Lai iegūtu / iestatītu pašreizējā pavediena vērtību, tas atrodas fonā vai nē.
ManagedThreadId tiek izmantots, lai iegūtu pašreiz pārvaldītā pavediena unikālo ID.
Nosaukums tiek izmantots, lai iegūtu vai iestatītu pašreizējā pavediena nosaukumu.
Prioritāte tiek izmantots, lai iegūtu vai iestatītu pašreizējā pavediena prioritāti.
ThreadState tiek izmantots, lai atgrieztu vērtību, kas atspoguļo pavediena stāvokli.

Vītņu metodes

Metode Apraksts
Aborts () tiek izmantots, lai pārtrauktu pavedienu. Tas paaugstina ThreadAbortException.
Pārtraukt () tiek izmantots, lai pārtrauktu pavedienu, kas atrodas WaitSleepJoin stāvoklī.
Pievienoties () tiek izmantots, lai bloķētu visas izsaucošās tēmas, līdz šī tēma tiek pārtraukta.
ResetAbort () tiek izmantots, lai atceltu pieprasījumu pārtraukt pašreizējo pavedienu.
Turpināt() tiek izmantots, lai atsāktu apturēto pavedienu. Tas ir novecojis.
Miega režīms (Int32) tiek izmantots, lai apturētu pašreizējo pavedienu norādītajās milisekundēs.
Sākt() maina pavediena pašreizējo stāvokli uz Runnable.
Apturēt () aptur pašreizējo pavedienu, ja tas nav apturēts. Tas ir novecojis.
Ienesīgums () tiek izmantots, lai pašreizējam pavedienam izpildītu citu pavedienu.

Galvenās vītnes piemērs

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

// Izeja:

MainThread

Izņēmumu apstrāde

The izņēmums ir kļūda, ko programma izpildes laikā ir iemetusi. Mēs veicam izņēmumu apstrādi, lai padarītu mūsu programmu par izņēmumu bez maksas.

Izņēmums Apraksts
System.DivideByZeroException Kļūda, kas radusies, dalot skaitli ar nulli.
System.NullReferenceException apstrādā kļūdu, kas radusies, atsaucoties uz nulles objektu.
System.InvalidCastException apstrādā kļūdu, ko radījusi nepareiza tipogrāfija.
System.IO.IOException rīkojas ar ievades / izvades kļūdām.
System.FieldAccessException Kļūda, ko radīja nederīga privāta / aizsargāta piekļuve.

C #, lai veiktu, mēs izmantojam 4 atslēgvārdus izņēmumu apstrāde:

  • mēģiniet
  • noķert
  • beidzot, un
  • mest
Piemērs:
izmantojot sistēmas publisko klasi EdurekExample {public static void Main (string [] args) {mēģiniet {int a = 10 int b = 0 int x = a / b} nozveju (izņēmums e) {Console.WriteLine (e)} Console.WriteLine ('Šis ziņojums ir no bloķēšanas bloka')}}

// Izeja:

System.DivideByZeroException: mēģināts dalīt ar nulli.
vietnē ExExaEdurekample.Main (virkne [] argumenti) F: C # TutorialC # ProgramsConsoleApp1ConsoleApp1Program.cs: 10. rindiņa
Šis ziņojums ir no bloķēšanas bloka

Pielāgots izņēmuma piemērs

izmantojot sistēmu public class InvalidAgeException: Exception {public InvalidAgeException (String message): base (message) {}} 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.') } } 

// Izeja:

InvalidAgeException: Atvainojiet, paredzams, ka vecums būs lielāks par 18 gadiem
vietnē Customized.validate (Int32 vecums) F: C # TutorialC # ProgramsConsoleApp1ConsoleApp1Program.cs: 18. rindiņa
vietnē Customized.Main (virkne [] argumenti) F: C # TutorialC # ProgramsConsoleApp1ConsoleApp1Program.cs: 23. rindiņa
Notveršanas bloķēšana tagad tiek izpildīta.

Visbeidzot bloķējiet piemēru

izmantojot System public class FinalExecption {public static void Main (string [] args) {mēģiniet {int a = 10 int b = 0 int x = a / b} catch (izņēmums e) {Console.WriteLine (e)} visbeidzot {Console .WriteLine ('Visbeidzot tiek izpildīts bloks')} Console.WriteLine ('Notiek bloķēšanas bloks')}}

// Izeja:

System.DivideByZeroException: mēģināts dalīt ar nulli.
at FinalExecption.Main (virkne [] argumenti) F: C # TutorialC # ProgramsConsoleApp1ConsoleApp1Program.cs: 10. rindiņa
Visbeidzot bloķēšana tiek izpildīta
Notiek nozvejas bloķēšana

Sistēmas izņēmuma paraksts

[SerializableAttribute] [ComVisibleAttribute (true)] publiskā klase SystemException: Exception

Sistēmas izņēmuma konstruktori

Celtnieks Apraksts
SystemException () To izmanto, lai inicializētu jaunu SystemException klases instanci.
SystemException

(SerializationInfo, StreamingContext)

To izmanto, lai inicializētu jaunu SystemException klases instanci ar sērijveida datiem.
SystemException (virkne) To izmanto, lai inicializētu jaunu SystemException klases instanci ar noteiktu kļūdas ziņojumu.
SystemException (virkne, izņēmums) To izmanto, lai inicializētu jaunu SystemException klases gadījumu ar noteiktu kļūdas ziņojumu un atsauci uz iekšējo izņēmumu, kas ir šī izņēmuma cēlonis.

Sistēmas izņēmuma rekvizīti

Īpašums Apraksts
Dati To izmanto, lai iegūtu atslēgu / vērtību pāru kolekciju, kas sniedz papildu lietotāja definētu informāciju par izņēmumu.
HelpLink To izmanto, lai iegūtu vai iestatītu saiti uz palīdzības failu, kas saistīts ar šo izņēmumu.
HRrezultāts To izmanto, lai iegūtu vai iestatītu HRESULT - kodētu skaitlisko vērtību, kas tiek piešķirta konkrētam izņēmumam.
InnerException To izmanto, lai iegūtu izņēmuma gadījumu, kas izraisīja pašreizējo izņēmumu.
Ziņojums To izmanto, lai iegūtu ziņojumu, kurā aprakstīts pašreizējais izņēmums.
Avots To izmanto, lai iegūtu vai iestatītu tās lietojumprogrammas nosaukumu, kas izraisa kļūdu.
StackTrace To izmanto, lai iegūtu tiešo kadru virknes attēlojumu zvanu kaudzē.
TargetSite To izmanto, lai iegūtu metodi, kas met pašreizējo izņēmumu.

Sistēmas izņēmuma metodes

Metodes Apraksts
Vienāds (objekts) To lieto, lai pārbaudītu, vai norādītais objekts ir vienāds ar pašreizējo objektu vai nē.
Pabeigt () To izmanto, lai atbrīvotu resursus un veiktu tīrīšanas darbības.
GetBaseException () To izmanto, lai iegūtu saknes izņēmumu.
GetHashCode () To izmanto, lai iegūtu hash kodu.
GetObjectData

(SerializationInfo, StreamingContext)

To izmanto, lai iegūtu objekta datus.
GetType () To izmanto, lai iegūtu pašreizējās instances izpildlaika veidu.
MemberwiseClone () To izmanto, lai izveidotu sekla pašreizējā objekta kopiju.
ToString () To izmanto, lai izveidotu un atgrieztu pašreizējā izņēmuma virknes attēlojumu.

Sistēmas izņēmuma piemērs

izmantojot System namespace CSharpProgram {class SystemExceptionExample {static void Main (string [] args) {try {int [] arr = new int [5] arr [10] = 25} catch (SystemException e) {Console.WriteLine (e)} }}}

// Izeja:

System.IndexOutOfRangeException: Indekss atradās ārpus masīva robežām.
pie CSharpProgram.SystemExceptionExample.Main (virkne [] argumenti) F: C # TutorialC # ProgramsConsoleApp1ConsoleApp1Program.cs: 11. rindiņa

Sinhronizācija

Sinhronizācija var būt paņēmiens, kas tikai 1 pavedienam ļauj piekļūt resursam uz noteiktu laiku. Neviens alternatīvs pavediens netiks pārtraukts, kamēr ieceltais pavediens nebūs pabeidzis savu uzdevumu.

Vairāku pavedienu programmā pavedieni ir atļautilai piekļūtu jebkuramnorādīta izpildelaiks. Vītnes koplieto resursus un izpilda tos asinhroni. Piekļuve koplietotajiem resursiem (datiem)var būt svarīgs uzdevumska vispārvarētu apstātiessistēma.mums ir tendence to ietekmētizveidojot pavedienus sinhronā veidā.

Piemērs bez sinhronizācijas

izmantojot sistēmu, izmantojot sistēmu. Vītņu klase 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() } } 

// Izeja:

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

Piemērs ar sinhronizāciju

izmantojot sistēmu, izmantojot sistēmu. Vītņu klase 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() } } 

// Izeja:

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

Jaunas funkcijas

Microsoft ir pievienojis daudzas jaunākās funkcijas C # valodai, dažas no tām ir minētas tālāk.

C # 6.0

  • Izmantojot statisko direktīvu
  • Izņēmuma filtri
  • Gaidiet ķeršanā / beidzot bloķē
  • Auto īpašuma inicializētāji
  • Noklusējuma vērtības tikai getter īpašībām
  • Izteiksmes ķermeņa locekļi
  • Null izplatītājs
  • Stīgu interpolācija
  • Operatora nosaukums
  • Vārdnīcas inicializētājs
  • Kompilators kā pakalpojums (Roslyn)

C # 7.0

  • Rakstu saskaņošana
  • Tuples
  • Dekonstrukcija
  • Vietējās funkcijas
  • Ciparu atdalītājs
  • Binārie literāļi
  • Ref atgriežas un vietējie
  • Izteikuma strukturālie konstruktori un pabeigtāji
  • Izteiksmīgi ķermeņa mērītāji un iestatītāji
  • No mainīgajiem lielumiem
  • Vispārīgi asinhronie atgriešanās veidi

C # 7.1

  • Async main
  • Noklusējuma izteicieni

Intervijas jautājumi, pamatojoties uz C #

Svarīgā intervija Jautājumi, kuru pamatā ir C # programmēšanas valoda, ir atrodami šajā atjauninātajā .

Ar to mēs esam nonākuši pie šī raksta “C # apmācība” beigām. Es ceru, ka jūs esat sapratuši datu struktūru, sintakses, funkcionalitātes un to izmantošanas laikā veikto darbību nozīmi. Tagad, kad esat sapratis Programmēšanas pamatus C #, izmantojot šoC # apmācība, pārbaudiet nodrošināta apmācība autors Edureka par daudzām tehnoloģijām, piemēram, Java, Pavasaris un daudziUzticams tiešsaistes mācību uzņēmums ar tīklu, kurā ir vairāk nekā 250 000 apmierinātu izglītojamo visā pasaulē, ieguva jautājums mums? Pieminiet to šī “C # Tutorial” emuāra komentāru sadaļā, un mēs sazināsimies ar jums pēc iespējas ātrāk.