Výukový program C #: Základy, ktoré potrebujete na zvládnutie jazyka C #



Tento článok o výučbe C # vám pomôže s podrobnými znalosťami o základných prostriedkoch C # spolu s príkladmi v reálnom čase pre lepšie pochopenie.

C # je univerzálny a robustný programovací jazyk vyvinutý spoločnosťou Microsoft Corporation v roku 2000 ako smrtiaci konkurent pre Javu. Je najpopulárnejším a dominujúcim programovacím jazykom, pokiaľ ide o vývoj webových aplikácií a desktopov.

V tomto C # výučbe sa naučíme nasledujúce koncepty.





C # Základy

Úvod do programovacieho jazyka C #

Na začiatku 90. rokov bola Java vedúcim programovacím jazykom pre vývoj webových aplikácií, vývoj desktopových aplikácií a mnoho ďalších oblastí. Microsoft chcel prísť s konkurenciou s mnohými pokročilými funkciami, ktoré by Javu mohli nechať ďaleko za sebou.



C#-Tutorial-hejlsberg_bio

Bolo to v roku 2000, Anders Hejlsberg a jeho tím spoločnosti Microsoft prišiel s myšlienkou C # ľudovo nazývaného C-Sharp. Túto iniciatívu schválila Medzinárodná organizácia pre normalizáciu (HLAVNÉ) a Európska asociácia výrobcov počítačov (ECMA). a nakoniec C # vstupuje do sveta vývoja softvéru.

Vlastnosti programovacieho jazyka C #



  • Objektovo orientovaný programovací jazyk

Objektovo orientovaný prístup k programovaniu je to, vďaka čomu je C # Sharp najprívetivejší pre programátorov a ľahko sa vyvíja a udržuje programovací jazyk.

  • Jazyk bezpečný pre typ

Význam Type-Safe je, že kompilátor bude mať prístup iba do umiestnenia pamäte, ktoré má povolenie na vykonávanie. Táto vlastnosť zvyšuje bezpečnosť kódu na exponenciálnu úroveň.

  • Interoperabilita

Vďaka funkcii interoperability je C # dostatočne schopný robiť všetko, čo je pôvodné v C ++, efektívnejším spôsobom, ktorý dokáže prekonať samotný C ++.

  • Bohatá knižnica

C # poskytuje prístup k viacerým počtom zabudovaných knižníc, ktoré poskytujú predprogramované funkcie na zníženie času stráveného v procese vývoja.

  • Škálovateľné a aktualizovateľné

C # bol navrhnutý tak, aby bol vynikajúci medzi ostatnými programovacími jazykmi. Preto je vždy otvorený aktualizáciám a svojimi vlastnosťami si zachováva svoju veľkú škálovateľnosť.

  • Komponentovo orientované

Vývojári v spoločnosti Microsoft použili pri vývoji C # komponentový prístup. Toto je najprevládajúcejšia vývojová metodológia na udržanie C # vysoko škálovateľného a aktualizovaného.

  • Štruktúrovaný jazyk

Prístup štruktúrovaného programovania sa uprednostňuje počas životného cyklu vývoja softvéru, pretože je ľahké vyvinúť kompiláciu a nasadiť softvér v porovnaní s prístupom programovania orientovaným na procedúry.

  • Rýchlo

Programovanie v C # je pri kompilácii a vykonávaní rýchlejšie v porovnaní s C ++ a inými programovacími jazykmi.

Inštalácia

Je dokázané, že Microsoft Visual Studio je najlepší editor vo svojej triede pre programovanie v C #. Nainštalujeme a nastavíme Microsoft Visual Studio na vykonávanie našich C # programov podľa krokov uvedených nižšie:

Krok 1 : Stiahnite si Microsoft Visual Studio

Google pre najnovšiu verziu Visual Studio a stiahnite si Inštalácia súbor do lokálneho systému a potom bežať inštalačný súbor ako správca.

Krok 2: Vyberte balík .NET Desktop Development Package

Po spustení inštalátora sa editor Visual Studio úspešne stiahne do vášho lokálneho systému. Neskôr sa na ploche zobrazí dialógové okno s výzvou nepriateľa konkrétny balík vo svojom systéme potrebujete. Tu musíte zvoliť .NET Desktop Development balíček.

Krok 3: Nastavte prostredie C #

Akonáhle budú vaše balíčky pre Vývoj .NET sa stiahnu, potom sa na vašej obrazovke zobrazí ďalšie dialógové okno so žiadosťou o hľadané vývojové prostredie. Tu musíte vyberte prostredie pre C #.

Krok 4: Vytvorte svoj prvý projekt

Po nastavení prostredia je všetko dobré. Spustite Visual Studio a vyberte vytvoriť nový projekt v zobrazenom dialógovom okne.

Budete presmerovaní na ďalšie dialógové okno a tam musíte zvoliť Knižnicu tried ako .NET Standard ako je ukázané nižšie.

V nasledujúcom dialógovom okne sa zobrazí výzva Nakonfigurujte svoj projekt . Nakonfigurujte to a teraz ste v editore. Napíš svoj prvý program a bežať to. Výstup sa úspešne zobrazí na serveri Príkazový riadok.

pomocou triedy systému Edureka {static void Main (string [] args) {Console.WriteLine ('Welcome to Edureka !, Happy Learning ..!')}}

//Výkon:

Vykonajme náš prvý C # program.

Štruktúra programu C #

Teraz, keď sme vykonali náš prvý C # program, poďme pochopiť jeho štruktúru podrobne. Jednoduchý program C # má nasledujúce časti.

pomocou System namespace ConsoleApplication1 {public class Edureka {public static void Main (string [] args) {Console.WriteLine ('Welcome to Edureka !, Happy Learning ..!')}}}

//Výkon:

Vitajte na stránkach Edureka !, Happy Learning ..!

  • trieda: triedu možno všeobecne definovať ako a kľúčové slovo ktorý sa používa na definovanie triedy v C # programe.
  • Edureka: Je to názov spoločnosti Trieda. Trieda sa často považuje za plán, ktorý uchováva členov a metódy súvisiace s triedou.
  • Hlavné: V podstate je primárna metóda celého C # programu, slúži ako brána pre vstup ovládacieho prvku do programu. Vykoná sa pred vykonaním akejkoľvek inej metódy programu.
  • neplatnosť: Tento segment kódu je určený pre návratový typ metódy. Môže to byť akýkoľvek iný dátový typ ako neplatný. Void znamená, že metóda nemá žiadne dáta vrátené z nej.
  • statický: Toto je kľúčové slovo ktorý hovorí, že deklarované dátové členy sú statické a deklarovaným členom je pridelená vyhradená pamäť.
  • Argumenty reťazca []: Pripomína to argumenty príkazového riadku, ktoré používame v našom programe. Zatiaľ čo realizujeme náš program, niektoré v podstate absolvujeme argumenty, ktoré program prijme na základe tohto vyhlásenia.
  • System.Console.WriteLine („Vitajte na serveri Edureka !, Happy Learning ..!“) Tu, Systém je menný priestor. Konzolaje to uvedená kategóriav mennom priestore systému. The WriteLine () je tostatickýtechnikakonzolykategórie, ktorá sa používa na zapisovanietext na konzole.

Teraz sa naučíme dátové typy dostupné v C #.

Dátové typy

Datové typy v C # sú rozdelené do troch kategórií, ktoré sú popísané nižšie.

Hodnotové dátové typy

The Hodnotové dátové typy sa nachádzajú v System.ValueType Knižnica a sú vždy pripravené na priamy prístup a premenným je možné priamo priradiť konkrétnu hodnotu. Hodnotové dátové typy sa ďalej delia na dva typy, ako je uvedené nižšie:

  • Preddefinované dátové typy
  • Užívateľom definované datové typy

Preddefinované dátové typy: To sú tie, ktoré bežne používame pri každodennom programovaní. Tieto datové typy sú preddefinované vývojármi jazykov a sú neustále pripravené na použitie pre programátorov.

Príklad:

int, float, char, short double, atd

Užívateľom definované datové typy: Existujú situácie, kedy bude potrebné uložiť rôzne hodnoty z dátových typov do jednej premennej. V týchto prípadoch Preddefinované dátové typy nie je dosť. Definované užívateľom Dátové typy sú pre používateľa ako prispôsobiteľné dátové typy.

Príklad: Štruktúra, Enum

Dátový typ Rozsah alokovanej pamäte Veľkosť pamäte
podpísaný znak -128 až 127 1 bajt
nepodpísaný znak 0 až 127 1 bajt
char -128 až 127 1 bajt
podpísané krátke -32 768 až 32 767 2 bajty
nepodpísané krátke 0 až 65 535 2 bajty
krátky -32 768 až 32 767 2 bajty
podpísaná int -2 147 483 648 až -2 147 483 647 4 bajty
nepodpísané int 0 až 4 294 967 295 4 bajty
int -2 147 483 648 až -2 147 483 647 4 bajty
podpísaná dlho -9 223 372 036 854 775 808 až 9 223 372 036 854 775 807 8 bajtov
nepodpísaný dlho 0 až 18 446 744 073 709 551 615 8 bajtov
dlho -9 223 372 036 854 775 808 až 9 223 372 036 854 775 807 8 bajtov
plavák 1,5 * 10-45 - 3,4 * 1038, (presnosť 7 číslic) 4 bajty
dvojitý 5,0 * 10-324 - 1,7 * 10308, (presnosť 15 číslic) 8 bajtov
desatinný -7,9 * 10-28 - 7,9 * 1028, (28-ciferná presnosť) 16 bajtov


Ukazovateľ dátový typ

Pointer Type je jednoduchý údajový typ. Jeho funkčnosť je úplne podobná ukazovateľom v C. Sú určené na ukladanie adresy iného ukazovateľa.

float * ptr

Referenčné dátové typy

Názov je samozrejmý. The Referenčné dátové typy vlastne neukladajú premenné, ale referenčnú hodnotu k tejto konkrétnej premennej. Inými slovami, ukladajú adresu skutočnej premennej.

Referenčné premenné sú rozdelené do troch rôznych typov, ako je uvedené nižšie:

  • Typ objektu

Dátový typ objektu je k dispozícii v serveri System.Object Trieda.Objekttypymôže byťpridelený khodnotyostatné typy,odkaztypy, preddefinované, definované používateľomtypy. Ale predtýmzadaniehodnoty, to vyžaduje typu premena.

objekt abc abc = 50 // nazýva sa to box
  • Dynamický typ

Premenné dynamického typu sú určené na ukladanie takmer všetkých typov hodnôt. Nazýva sa to ako dynamický typ, pretože typová kontrola hodnôt sa vykonáva za behu

dynamické x = 10
  • Typ reťazca

Typ reťazca je k dispozícii v System.String trieda. Typ reťazca je určený na ukladanie reťazcových literálov. Sláčikové literály sú uložené v dvoch formách v jazykudve formy

    • citované
    • @ citované.
Reťazec S = 'Edureka'
  • The @ citované reťazcový literál vyzerá ako
@ 'Edureka'

Teraz pochopme premenné.

Premenné

MVC architektúra v Jave s príkladom

Premenné sú názvy pridelené pamäťovému miestu, ktoré uchováva určité údaje poskytnuté používateľom a ktoré sú ľahko dostupné pomocou názvu premennej. V C # je k dispozícii päť typov premenných

Typ Príklad
Nulový Nulové údaje
Boolovský Pravdivé a nepravdivé
Celé číslo Int, Char, Byte, Short, Long
Plavák Float a Double
Desatinné miesto Desatinné miesto

Príklad:

int a, b double x float p char abc

Pravidlá, ktoré treba dodržiavať pri deklarácii premenných v C #

  • Premenná môže obsahovať abecedy, číslice a podčiarkovníky.
  • Názov premennej môže začínať iba abecedou alebo podčiarkovníkom.
  • Premenné nemôžu začínať číslicou alebo špeciálnym znakom.
  • Medzi názvom premennej nie sú povolené medzery.
  • Vyhradené kľúčové slová sa nemôžu používať ako názvy premenných.

Operátorov

Operátor je možné definovať ako špeciálny symbol, ktorý vysvetľuje, že počítač má vykonávať určité matematické operácie, ktoré sú logickými operáciami na množine premenných. C # obsahuje rôzne operátory, ktoré sú uvedené nižšie.

  • Aritmetické operátory
  • Relační operátori
  • Logickí operátori
  • Bitoví operátori
  • Prevádzkovatelia pridelenia

Aritmetické operátory

Prevádzkovateľ Príklad Popis
+ A + B Pridá dva operandy
- A - B Podradí dva operandy
* A * B Násobí dva operandy
/ A / B Delí dva operandy
% A% B Zvyšok dvoch operandov
++ A ++ Prírastková operácia
- TO- Operácia znižovania

Relační operátori

Prevádzkovateľ Príklad Popis
== A == B Je pravda, že ak sú obidva operandy rovnaké, Else False
! = A! = B Je pravda, že ak si obidva operandy nie sú rovnaké, Else False
> A> B Je pravda, že ak je A väčšie, iné nepravdivé
< TO Je pravda, že ak je B väčšie, iné nepravdivé
> = A> = B Je pravda, že ak je A väčšie alebo rovné, Else False
<= TO<= B Pravda, id B je väčší rovný, inak nepravdivý

Logickí operátori

Prevádzkovateľ Príklad Popis
&& A && B. Pravda, ak sú oba operandy pravdivé, Else False
|| A || B Pravda, ak je jeden z operandov pravda, Else False
! A! B Obráti logický stav operandu

Bitoví operátori

TO B A & B A | B A ^ B
jeden jeden jeden jeden 0
jeden 0 0 jeden jeden
0 jeden 0 jeden jeden
0 0 0 0 0
Prevádzkovateľ Príklad Popis
~ (~ A) Operátor doplnku Binary One je unárny a má za následok „preklápanie“ bitov.
<< TO<<2 Operátor binárneho radenia vľavo. Hodnota ľavého operandu sa posúva doľava o počet bitov určený pravým operandom.
>> A >> 2 Operátor binárneho radenia vpravo. Hodnota ľavého operandu sa posúva doprava o počet bitov určený pravým operandom.

Prevádzkovatelia pridelenia

Prevádzkovateľ Príklad Popis
= A = B + C A = B + C, B + C je priradené k A
+ = A + = B A = A + B, A + B je priradené k A
- = A - = B A = A-B, A-B je priradené k A
* = A - = B A = A * B, A * B je priradené k A
/ = A / = B A = A / B, A / B je priradené k A
% = A% = B A = A% B, A% B je priradené k A
<<= TO<<= 2 Operátor ľavého posuvu a priradenia
>> = A >> = 2 Operátor pravého posuvu a priradenia
& = A & = 2 Bitový operátor a operátor priradenia
^ = A ^ = 2 Bitový operátor exkluzivity a priradenia
| = A! = 2 Bitový inkluzívny operátor a operátor priradenia

Slučky

TO slučka príkaz sa používa na opakované vykonávanie bloku výpisov, kým nie je splnená konkrétna podmienka. Jazyk C # sa skladá z nasledujúcich príkazov slučky.

  • Pre slučku
  • Zatiaľ čo Loop
  • Robte While Loop

Pre slučku

The pre slučku sa používa na vykonávanie určitého segmentu kódu viackrát, kým nie je splnená daná podmienka.

Syntax

pre (prírastok / pokles inicializačnej podmienky) {// segment kódu}

Vývojový diagram:

Príklad:

pomocou verejnej triedy systému ForExample {public static void Main (string [] args) {for (int i = 1 i<= 5 i++) { Console.WriteLine(i) } } } 

//Výkon:

jeden
2
3
4
5

Zatiaľ čo Loop

The Zatiaľ čo slučka sa používa na vykonávanie segmentu kódu viackrát, kým nie je splnená konkrétna podmienka.

Syntax

while (podmienka) {// kód, ktorý sa má vykonať}

Vývojový diagram:

Príklad:

pomocou System namespace Loops {class Program {static void Main (string [] args) {int x = 5 while (x<= 10) { Console.WriteLine('The value of a: {0}', x) x++ } Console.ReadLine() } } } 

//Výkon:

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

Robte While Loop

Smyčka Do while je úplne podobná cyklu While Loop, ale jediný rozdiel je v tom, že podmienka je umiestnená na konci slučky. Smyčka sa teda vykoná aspoň raz.

Syntax

urobte {// kód, ktorý sa má vykonať} while (podmienka)

Vývojový diagram:

Príklad:

pomocou System namespace 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, produkt) i ++} while (i<= 10) } } } 

//Výkon:

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

Podmienené

Podmienené vyhlásenia sa používajú na vykonávanie vyhlásenie alebo skupina Vyhlásenia na základe nejakej podmienky. Ak stav je potom pravda C # vyhlásenia sa vykonajú inak nasledujúce vyhlásenie bude vykonaný.

Rôzne typy podmienených príkazov v jazyku C ++ sú nasledujúce:

  1. Ak vyhlásenie
  2. Vyhlásenie if-else
  3. Vnorené vyhlásenie If-else
  4. If-Else If rebrík
  5. Prepnúť vyhlásenie

Ak vyhlásenie

Singel ak príkaz je v jazyku C # použitý na vykonanie kódu, ak je splnená podmienka. Nazýva sa tiež jednosmerný výberový príkaz.

Syntax

if (boolean-expression) {// príkazy vykonané, ak je logický výraz true}

Vývojový diagram:

Príklad:

pomocou System namespace Podmienené {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.') } } } 

//Výkon:

2 je menej ako 5
Toto vyhlásenie sa vykoná vždy.

Vyhlásenie if-else

The keby-inak Príkaz v jazyku C sa používa na vykonanie kódu, ak je podmienka pravdivá alebo nepravdivá. Hovorí sa mu aj vyhlásenie o obojsmernom výbere.

Syntax

if (boolean-expression) {// príkazy vykonané, ak boolean-expression je true} else {// príkazy vykonané, ak boolean-výraz je nepravdivý}

Vývojový diagram:

Príklad:

pomocou System namespace Podmienené {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.') } } } 

//Výkon:

12 je väčšie alebo rovné 5
Toto vyhlásenie sa vykoná vždy.

Vnorené vyhlásenie If-else

Vnorené keby-inak príkaz sa používa, keď program vyžaduje viac ako jeden testovací výraz. Hovorí sa mu aj viacsmerný výberový príkaz. Ak je vo vyhlásení zahrnutá séria rozhodnutí, použijeme ich keby-inak vyhlásenie vo vnorenej podobe.

Syntax

if (boolean-výraz) {if (vnorený výraz-1) {// kód, ktorý sa má vykonať} else {// kód, ktorý sa má vykonať}} else {if (vnorený-výraz-2) {// kód, ktorý sa má vykonať } else {// kód, ktorý sa má vykonať}}

Vývojový diagram:

Príklad:

pomocou System namespace Podmienené {class Nested {public static void Main (string [] args) {int first = 7, second = -23, third = 13 if (first & gt second) {if (first

//Výkon:

13 je najväčší

Inak ako rebrík

The keby-ešte-keby príkaz sa používa na vykonanie jedného kódu z viacerých podmienok. Nazýva sa to aj multipath decision statement. Je to reťazec príkazov if..else, v ktorých je každý príkaz if spojený s príkazom else if a posledným by bol príkaz else.

Syntax

if (podmienka1) {// kód, ktorý sa má vykonať, ak je podmienka1 true} else if (podmienka2) {// kód, ktorý sa má vykonať, ak je podmienka2 pravdivá} else if (podmienka3) {// kód, ktorý sa má vykonať, ak je podmienka3 pravdivá} ... else {// kód, ktorý sa má vykonať, ak sú splnené všetky podmienky}

Vývojový diagram:

Príklad:

pomocou triedy systému Edureka {public static void Main (String [] args) {int i = 20 if (i == 10) Console.WriteLine ('i je 10') else if (i == 15) Console.WriteLine (' i je 15 ') inak if (i == 20) Console.WriteLine (' i je 20 ') else Console.WriteLine (' i nie je prítomné ')}}

//Výkon:

ja mám 20

Prepnúť vyhlásenie

Prepnúť vyhlásenie slúži ako náhrada za dlhý rebrík „if-else-if“, ktorý sa používa na testovanie zoznamu prípadov. Príkaz switch obsahuje jeden alebo viac štítkov prípadov, ktoré sú testované na výraz switch. Keď sa výraz zhoduje s prípadom, vykonajú sa súvisiace príkazy s týmto prípadom.

Syntax

switch (premenná / výraz) {hodnota prípadu1: // Príkazy vykonané, ak výraz (alebo premenná) = hodnota1 zalomí hodnotu prípadu2: // Príkazy vykonané, ak sa výraz (alebo premenná) = hodnota1 zalomí ... ... ... .. ... ... predvolené: // Príkazy vykonané, ak sa nezhoduje žiadny prípad}

Vývojový diagram:

Príklad:

pomocou System namespace Podmienené {class SwitchCase {public static void Main (string [] args) {char ch Console.WriteLine ('Enter an alphabet') ch = Convert.ToChar (Console.ReadLine ()) switch (Char.ToLower (ch )) {prípad 'a': prípad prerušenia Console.WriteLine ('Vowel') 'e': prípad prerušenia Console.WriteLine ('Vowel') 'i': prípad prerušenia Console.WriteLine ('Vowel') 'o': Prípad zlomu Console.WriteLine ('Vowel') 'u': Console.WriteLine ('Vowel') východiskový zlom: Console.WriteLine ('Nie je samohláska') zlom}}}}

//Výkon:

Zadajte abecedu
je
Samohláska

Struny

String Datový typ je členom System.String Trieda. Je schopný ukladať charakterové údaje. Na Stings môžeme vykonávať rôzne operácie ako naprzreťazenie, porovnanie, získanie podreťazca, vyhľadávanie, orezanie, výmena a mnoho ďalších.

Obdoba reťazca a reťazca

V C # String a struna sú rovnocenné. Slovo reťazec je a kľúčové slovo a koná ako System.String trieda. Na vyhlásenie reťazcov môžeme použiť ktorúkoľvek z verzií.

Syntax:

string s1 = 'Edureka' // vytvorenie reťazca pomocou kľúčového slova string String s2 = 'Happy Learning' // vytvorenie reťazca pomocou triedy String

Príklad:

pomocou 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 '} reťazec s2 = nový reťazec (ch) Console.WriteLine ( s1) Console.WriteLine (s2)}}

//Výkon:

Edureka
Výukový program Csharp

Metódy reťazcov v C #

Metóda Popis
Klon () Používa sa na vrátenie odkazu na túto inštanciu reťazca.
Porovnať (reťazec, reťazec) Používa sa na porovnanie dvoch zadaných reťazcových objektov.
Concat (reťazec, reťazec) Zreťazte dve zadané inštancie reťazca.
Obsahuje (reťazec) Vráti hodnotu označujúcu zadaný podreťazec
Kopírovať (reťazec) Používa sa na vytvorenie novej inštancie reťazca s rovnakou hodnotou
CopyTo (Int, Char [], Int, Int) Kopíruje znaky zo zadanej polohy
Rovná sa (reťazec, reťazec) Určuje, že dva objekty typu String majú rovnakú hodnotu.
Formát (reťazec, objekt) Nahraďte jednu alebo viac položiek formátu v zadanom reťazci
IndexOf (reťazec) Vykazuje index založený na nule prvého výskytu
Vložka (Int32, reťazec) Vráti nový reťazec, do ktorého je reťazec vložený v indexe.
IsInterned (reťazec) Označuje, že tento reťazec je v normalizačnom tvare Unicode C.
IsNullOrEmpty (reťazec) Označuje, že zadaný reťazec je null alebo prázdny reťazec.
IsNullOrWhiteSpace (reťazec) Používa sa na označenie, či je zadaný reťazec nulový, prázdny,
Pripojiť sa (reťazec, reťazec []) Používa sa na zreťazenie všetkých prvkov reťazcového poľa
LastIndexOf (znak) Ohlási pozíciu posledného znaku založenú na nule
LastIndexOfAny (znak []) Ohlási pozíciu posledného znaku založenú na nule
Odstrániť (Int32) Vráti nový reťazec, v ktorom sú všetky znaky
Nahradiť (reťazec, reťazec) Vráti nový reťazec, v ktorom sú všetky výskyty reťazca
Split (znak []) Používa sa na rozdelenie reťazca na podreťazce
StartsWith (reťazec) Používa sa na kontrolu, či začiatok tohto reťazca
Podreťazec (Int32) Používa sa na získanie podreťazca z tejto inštancie.
ToCharArray () Skopíruje znaky v tomto prípade do poľa Unicode.
Natiahnuť() Používa sa na vrátenie inštancie reťazca.
Orezať () Orezáva šnúrku


Polia

Podobne ako v iných programovacích jazykoch, aj C # má polia. Polia sú jednoduché dátové štruktúry, ktoré sú určené na ukladanie rovnakého dátového typu prvkov do súvislého pamäťového miesta.

C # podporuje nasledujúce typy polí.

  • Jedno dimenzionálne pole
  • Multidimenzionálne pole
  • Zubaté pole

Jedno dimenzionálne pole

Single Dimensional Array ukladá prvky vo forme jedného jedného riadku.

Syntax

int [] arr = new int [5] // vytváranie poľa

Príklad:

pomocou systému public class ArrayExample {public static void Main (string [] args) {int [] arr = new int [5] arr [0] = 10 arr [1] = 20 arr [2] = 30 arr [3] = 40 arr [4] = 50 pre (int i = 0 i 

//Výkon:

10
dvadsať
30
40
päťdesiat

Multidimenzionálne pole

Viacrozmerné pole ukladá prvky vo forme viacerých dimenzií, ako napríklad matica a kocka atď.

Syntax

int val = a [2,3]

Príklad:

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

//Výkon:

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

Zubaté pole

Jagged Array je jednoducho pole polí.

Príklad:

pomocou System namespace ArrayApplication {class MyArray {static void Main (string [] 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 for (i = 0 i<5 i++) { for (j = 0 j < 2 j++) { Console.WriteLine('a[{0}][{1}] = {2}', i, j, a[i][j]) } } Console.ReadKey() } } } 

//Výkon:

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

Zbierky

Zbierku je možné jednoducho považovať za skupinu objektov zhromaždených spoločne, aby sa na zhromaždené údaje mohli uplatniť niektoré funkcie. Operácie, ktoré kedysi možno existujú v zbierke, sú,

  • uložiť objekt
  • aktualizovať objekt
  • vymazať objekt
  • načítať objekt
  • vyhľadávací objekt a
  • triediť objekt

Druhy zbierok

Existujú tri rôzne možnosti práce so zbierkami. Nižšie sú uvedené tri menné priestory:

  • Systémové zbierky. Všeobecné triedy
  • System.Collections triedy
  • System.Collections.Concurrent triedy

System.Collections.Generic Class má nasledujúce odrody tried:

  • Zoznam
  • Stoh
  • Fronta
  • LinkedList
  • HashSet
  • Zoradené
  • Slovník
  • SortedDictionary
  • Zoradený zoznam

The System.Collections triedy sa považujú za staršie triedy. zahŕňajú nasledujúce triedy.

  • ArrayList
  • Stoh
  • Fronta
  • Hashtable

The System.Collections.Concurrent triedymenný priestor poskytuje triedy pre operácie bezpečné pre vlákna. Viaceré vlákna teraz nebudú vytvárať problém pre prístup k položkám zbierky. v tejto triede sú k dispozícii,

  • BlockingCollection
  • ConcurrentBag
  • ConcurrentStack
  • ConcurrentQueue
  • ConcurrentDictionary
  • Priečky
  • Priečky
  • OrderablePartitioner

Zoznam

The zoznam sa považuje za dátovú štruktúru dostupnú v System.Collection.Generics menný priestor. Môže ukladať a načítať prvky. Zoznam je schopný ukladať duplicitné prvky.

Príklad:

using System using 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') names.Add ('Kiran') foreach (var name in names) {Console.WriteLine (name)}}}

//Výkon:

Sandhya
Arun
Prashanth
Kiran

Hash Set

C # HashSetkategória je zvykomobchod,zobraťalebočítať komponenty. Tonieuložiť duplikátkomponenty.je to naliehavépoužit HashSet kategórieakmátedo obchoduvýlučne výrazný komponenty . to je nájdené v System.Collections.Generic namespace.

Príklad:

using System using 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') names.Add ('Imran') names.Add ('karan') foreach (var name in names) {Console.WriteLine (name)}}}

//Výkon:

Sunil
Amar
Pujari
Imran
karan

Zoradená sada

Sada C # SortedSettriedy sú často zvyknutíobchod, odstrániť alebo čítať prvkov . Udržuje vzostupné poradie anieuložiť duplikátprvkov.je to pohotovépoužiť SortedSetkategórieakmátedo obchodu výrazný komponenty a udržiavať vzostupné poradie.to jenájdené v System.Collections.Generic namespace.

Príklad:

using System using 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') names.Add ('Ravi') names.Add ('Kajol') foreach (var name in names) {Console.WriteLine (name)}}}

//Výkon:

Anuradha
Kajol
Praveen
Ravi
Sanjay

Stoh

The stoh je jednoduchá zbierka, ktorá nasleduje HRANA alebo procedúru first in last out pri spracovaní prvkov v nej uložených.

Príklad:

using System using 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') names.Push ('Rajesh') names.Push ('kumar') foreach (názov reťazca v menách) {Console.WriteLine (name)} Console.WriteLine ('Peek element:' + names.Peek () ) Console.WriteLine ('Pop:' + names.Pop ()) Console.WriteLine ('After Pop, Peek element:' + names.Peek ())}}

//Výkon:

kumar
Rajesh
James
Pooja
Chandan
Peek element: kumar
Pop: kumar
Po Pop, Peek element: Rajesh

Fronta

Fronta je úplne podobná Stacku, ale jediný rozdiel je v tom, že nasleduje fronta FIFO alebo princíp prvý dovnútra a prvý von pri spracovaní prvkov v ňom uložených.

Príklad:

using System using System.Collections.Generic public class Edureka {public static void Main (string [] args) {Queue names = new Queue () names.Enqueue ('Srujan') names.Enqueue ('Prajat') names.Enqueue ( 'John') names.Enqueue ('Raju') names.Enqueue ('Hari') foreach (názov reťazca v menách) {Console.WriteLine (name)} Console.WriteLine ('Peek element:' + names.Peek () ) Console.WriteLine ('Dequeue:' + names.Dequeue ()) Console.WriteLine ('After Dequeue, Peek element:' + names.Peek ())}}

//Výkon:

Srujan
Prajat
Ján
Divoký
Deň
Peek element: Srujan
Poradie: Srujan
Po funkcii Dequeue, Peek element: Prajat

Prepojený zoznam

Prepojený zoznam je kolekcia dynamickej pamäte. Prvky v zozname Prepojené sa ukladajú prístupom do pamäte z haldy a ukladaním prvkov v súvislom poradí prepojením ich adries.

Príklad:

using System using 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') names.AddLast ('jay') names.AddFirst ('sai') foreach (var meno v menách) {Console.WriteLine (name)}}}

//Výkon:

sai
Hranice
Arun
Prakash
jay

Slovník

Slovník kategóriepoužívanápadhashtable. Ukladá hodnoty ďalejpremisakľúča. Obsahujevýraznýkľúčevýlučne. Autor:pomockľúča,budeme jednoduchoprehľadať aleboodniesť prvky.to jenájdené v System.Collections.Generic namespace.

Príklad:

using System using System.Collections.Generic public class Edureka {public static void Main (string [] args) {Dictionary names = new Dictionary () names.Add ('1', 'Shiva') names.Add ('2', 'Prasad') names.Add ('3', 'Preetam') names.Add ('4', 'Roy') names.Add ('5', 'Akash') foreach (KeyValuePair kv in names) {Console. WriteLine (kv.Key + '' + kv.Value)}}}

//Výkon:

1 Šiva
2 Prasad
3 Preetam
4 Roy
5Akash

Zoradený slovník

The SortedDictionary kategóriepoužívadizajnhashtable. Ukladá hodnoty ďalejnápadkľúča. Obsahujevýraznýkľúče a udržuje vzostupné poradie dňanápadkľúča. Autor:pomockľúča,budeme jednoduchoprehľadať aleboodniesť prvky.to jenájdené v System.Collections.Generic namespace.

Príklad:

using System using System.Collections.Generic public class Edureka {public static void Main (string [] args) {SortedDictionary names = new SortedDictionary () names.Add ('1', 'Arun') names.Add ('4', 'Vishal') names.Add ('5', 'Ramesh') names.Add ('3', 'Vidya') names.Add ('2', 'Pallavi') foreach (KeyValuePair kv in names) {Console. WriteLine (kv.Key + '' + kv.Value)}}}

//Výkon:

1 Šiva
2 Prasad
3 Preetam
4 Roy
5Akash

Zoradený zoznam

The Zoradený zoznam jeanpole párov kľúč / hodnota. Ukladá hodnoty ďalejpremisakľúča. SortedListkategórieobsahujevýraznýkľúče a udržuje vzostupné poradie dňapremisakľúča. Autor:pomockľúča,sme schopní jednoduchovyhľadať alebo odstrániťprvkov.to jenájdený v Systémové zbierky. Všeobecné menný priestor.

Príklad:

using System using System.Collections.Generic public class Edureka {public static void Main (string [] args) {SortedDictionary names = new SortedDictionary () names.Add ('1', 'Arun') names.Add ('4', 'Vishal') names.Add ('5', 'Ramesh') names.Add ('3', 'Vidya') names.Add ('2', 'Pallavi') foreach (KeyValuePair kv in names) {Console. WriteLine (kv.Key + '' + kv.Value)}}}

//Výkon:

1 Arun
2 Pallavi
3 Vidya
4 Višal
5Ramesh

Štruktúra

Štruktúra je používateľom definovaný dátový typ určený na ukladanie viacerých prvkov rôznych dátových typov. Štruktúra je deklarovaná pomocou kľúčového slova štruktúr.

Príklad:

using System struct Books {public string title 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 =' Výukový program pre programovanie v C ++ 'Book1.book_id = 95908978 Book2.title =' Telecom Billing 'Book2.author =' Karan 'Book2.subject =' Telecom Billing Tutorial 'Book2.book_id = 18674900 Console.WriteLine ( „Book 1 title: {0}“, Book1.title) Console.WriteLine („Book 1 Author: {0}“, Book1.author) Console.WriteLine („Book 1 subject: {0}“, Book1.subject) Console.WriteLine ('Book 1 book_id: {0}', Book1.book_id) Console.WriteLine ('Book 2 title: {0}', Book2.title) Console.WriteLine ('Book 2 Author: {0}', Book2.author) Console.WriteLine ('Kniha 2 predmet: {0}', Book2.subject) Console.WriteLine ('Kniha 2 book_id: {0}', Book2.book_id) Console.ReadKey ()}}

//Výkon:

Názov knihy 1: Programovanie v C #
Kniha 1 Autor: Ramchandra Kumar
1. kniha: C ++ Programming Tutorial
Kniha 1 book_id: 95908978
Názov knihy 2: Telecom Billing
Kniha 2 Autor: Karan
2. kniha, predmet: Výučba fakturácie telekomunikačných služieb
Kniha 2 book_id: 18674900

Funkcie

Funkcia je definovaná ako blok kódu hlavného kódu. Funkcia sa používa na vykonávanie príkazov uvedených v bloku kódu. Funkcia sa skladá z nasledujúcich komponentov.

  • Názov funkcie: Jedná sa o príznačný názov, ktorý sa používa na volanie funkcie.
  • Typ vrátenia: Určuje dátový typ návratovej hodnoty funkcie.
  • Telo: Obsahuje spustiteľné príkazy.
  • Špecifikátor prístupu: Určuje prístupnosť funkcií v aplikácii.
  • Parametre: Je to zoznam argumentov, ktoré môžeme odovzdať funkcii počas hovoru.

Syntax

FunctionName () {// telo funkcie // návratové vyhlásenie}

Príklad:

using System namespace FunctionExample {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 ('To Edureka') Console.WriteLine ('Welcome' + message)}}}

//Výkon:

Funkcia Inside Show
Vitajte na Edureka

Funkcie je možné vykonávať 3 rôznymi spôsobmi:

  • Výzva podľa hodnoty
  • Volať referenciou
  • Von parameter

Výzva podľa hodnoty

V C #, hodnotu - typ parametreten preukazreplikapôvodnej hodnoty dofunkcia namiestoodkaz. Tonieupraviťprvá hodnota. Anpozmeňujúci a doplňujúci návrh bol vytvorenýv prešielhodnota nieVekkonkrétna hodnota.v rámcinasledujúci príklad,mámeprejsťhodnotu v celom rozsahuthehovor.

Príklad:

using System namespace CallByValue {class Edureka {public void Show (int val) {val * = val Console.WriteLine ('The value inside the show function' + val)} static void Main (string [] args) {int val = 50 Program Edureka = nový program Edureka () Console.WriteLine ('Hodnota pred volaním funkcie' + val). Show (val) Console.WriteLine ('Hodnota po vyvolaní funkcie' + val)}}}

//Výkon:

Hodnota pred volaním funkcie 50
Hodnota vo vnútri funkcie show 2500
Hodnota po vyvolaní funkcie 50

Volať referenciou

V metóde Call by Referencedo ref kľúčové slovo na odovzdanie argumentu ako referenčného typu. Odošle odkaz na argumenty funkcii, nie kópiu pôvodnej hodnoty. Zmeny v odovzdaných hodnotách sú trvalé a upraviť pôvodná hodnota premennej.

Príklad:

using System namespace CallByReference {class Edureka {public void Show (ref int val) {val * = val Console.WriteLine ('The value inside the show function' + val)} static void Main (string [] args) {int val = 50 Program Edureka = nový program Edureka () Console.WriteLine ('Hodnota pred volaním funkcie' + val). Show (ref val) Console.WriteLine ('Hodnota po vyvolaní funkcie' + val)}}}

//Výkon:

Hodnota pred volaním funkcie 50
Hodnota vo vnútri funkcie show 2500
Hodnota po vyvolaní funkcie 2500

Von parameter

Vonkajší parameterposkytuje von kľúčové slovo na odovzdanie argumentov ako out-type. Je to ako referenčný typ, až na to, že nevyžaduje inicializáciu premennej pred odovzdaním. Musíme použiť von kľúčové slovo odovzdať argument ako out-type. Je to užitočné, keď chceme, aby funkcia vrátila viac hodnôt.

Príklad:

using 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 () Program Console.WriteLine ('Hodnota pred rozdaním premennej' + val). Show (out val) Console.WriteLine ('Hodnota po prijatí výstupnej premennej' + val)}}}

//Výkon:

Hodnota pred vynechaním premennej 50

Hodnotapo prijatí von premennej 25

Teraz prejdime k objektovo orientovanému programovaniu

Objektovo orientované programovanie

Objektovo orientované programovanie Systémje paradigma programovania založená na koncepcii predmety ktoré obsahujú dátových členov a metódy súvisiace s nimi. Primárnym účelom objektovo orientovaného programovania je zvýšiť flexibilitu a udržiavateľnosť programov

Vlastnosti objektovo orientovaného programovania:

  • Dôraz sa kladie skôr na údaje ako na postup.
  • Programy sú rozdelené na objekty, čo uľahčuje prácu s nimi.
  • Dátové štruktúry sú navrhnuté tak, aby charakterizovali objekty.
  • Funkcie, ktoré fungujú naúdaje objektu sú umiestnené spolu v dátovej štruktúre.
  • Dáta sú skryté a nemožno k nim získať externými funkciami bez povolenia.
  • Komunikácia medzi objektmi môže prebiehať pomocou funkcií.
  • Pridávanie nových údajov a funkcií sa stalo jednoduchým.
  • Pri návrhu programu sa riadi prístupom zdola nahor.

Objektovo orientované paradigmy v C # sú nasledujúce

Výpočet v C #

Enum alebo tiež nazývaný ako vyčíslenie v C # sa používa na ukladanie konštantných hodnôt bez toho, aby ste ich museli meniť počas celého vykonávania programu C #. Tosa používa na uloženie množiny pomenovaných konštánt, ako sú sezóna, dni, mesiac, veľkosť atď

Príklad:

pomocou verejnej triedy System EnumExample {public enum week {pondelok, utorok, streda, štvrtok, piatok, sobota, nedeľa} public static void Main () {int x = (int) week.Monday int y = (int) week.Friday Console .WriteLine ('Monday = {0}', x) Console.WriteLine ('Friday = {0}', y)}}

//Výkon:

Pondelok = 0
Piatok = 4

Objektovo orientovaný programovací prístup

Objektovo orientovaný štýl programovania je možné dosiahnuť pomocou metód predpísaných nižšie.

Zapuzdrenie

Zapuzdrenie je metóda kombinácie metódy spolu s ich dátových členov.

Príklad:

pomocou System namespace Edureka {class Rectangle {public double length public double width public double GetArea () {return length * width} public void Display () {Console.WriteLine ('Length: {0}', length) Console.WriteLine (' Šírka: {0} ', width) Console.WriteLine (' Area: {0} ', GetArea ())}} class ExecuteRectangle {static void Main (string [] args) {Rectangle r = new Rectangle () r.length = 50 r. Šírka = 35 r. Display () Console.ReadLine ()}}}

//Výkon:

Dĺžka: 50
Šírka: 35
Plocha: 1750

Abstrakcia

Abstrakcia je metóda na skryť komplexnú kódovaciu časť od používateľa tým, že mu poskytne iba požadované informácie, ktoré potrebuje.

Príklad:

using System public abstract class 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 ...')}} verejná trieda TestAbstract {public static void Main () {Shape ss = new Rectangle () s.draw () s = new Circle () s.draw ()}}

//Výkon:

kresliaci obdĺžnik ...
kresliaci kruh ...

Rozhranie

The rozhranie je úplne podobný Abstrakcii. Funkciou rozhrania je skryť nedôležité údaje pred používateľom a poskytnúť mu iba dôležité údaje, ktoré potrebuje.

Príklad:

pomocou systému verejného rozhrania Drawable {void draw ()} public class Obdĺžnik: Drawable {public void draw () {Console.WriteLine ('drawing rectangle ...')}} public class Circle: Drawable {public void draw () {Console .WriteLine ('drawing circle ...')}} verejná trieda TestInterface {public static void Main () {Drawable dd = new Rectangle () d.draw () d = new Circle () d.draw ()}}

//Výkon:

kresliaci obdĺžnik ...
kresliaci kruh ...

Polymorfizmus

ako vytvoriť súbory protokolu v

Polymorfizmusje kombinácia „Poly“ + „Morphs“ čo znamená veľa podôb. Je to grécke slovo. To znamená, že segment kódu môže mať viac foriem. Máme dva typy polymorfizmu.

  • Zostavte časový polymorfizmus
  • Polymorfizmus za behu

Príklad:

pomocou systému verejná trieda Zviera {public string color = 'white'} verejná trieda Pes: Zviera {public string color = 'black'} verejná trieda TestSeals {public static void Main () {Animal d = new Dog () Console.WriteLine ( d.color)}}

//Výkon:

biely

Dedenie

Dedenie je proces, v ktorom jeden objekt získava všetky vlastnosti a správanie svojho nadradeného objektu automaticky. Môžete znovu použiť, rozšíriť alebo upraviť atribúty a správanie definované v inej triede. nazýva sa trieda, ktorá dedí členov inej triedy odvodená trieda a trieda, ktorej členovia sa dedia, sa nazýva základňa trieda. Odvodená trieda je špecializovaná trieda pre základnú triedu.

Príklad pre dedičstvo na jednej úrovni

using System namespace RectangleApplication {class Rectangle {protected double length protected double width public Rectangle (double l, double w) {length = l width = w} public double GetArea () {return length * width} public void Display () {Console. WriteLine ('Dĺžka: {0}, dĺžka) Console.WriteLine (' Šírka: {0} ', šírka) Console.WriteLine (' Plocha: {0} ', GetArea ())}} doska triedy: Obdĺžnik {súkromné dvojitá cena verejná stolová doska (dvojitá l, dvojitá w): základná (l, w) {} verejná dvojitá cena GetCost () {dvojitá cena nákladov = GetArea () * 70 cena za vrátenie tovaru) public void Display () {base.Display () Console .WriteLine ('Cena: {0}', GetCost ())}} trieda ExecuteRectangle {static void Main (string [] args) {Tableop t = new Tableop (4.5, 7.5) t.Display () Console.ReadLine () }}}

//Výkon:

Dĺžka: 4.5
Šírka: 7.5
Plocha: 33,75
Náklady: 2362,5

Príklad viacúrovňového dedičstva

pomocou System namespace InheritanceApplication {class Shape {public void setWidth (int w) {width = w} public void setHeight (int h) {height = h} protected int width protected int height} public interface 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 ('Celková plocha: {0}', Rect.getArea ()) Console.WriteLine ('Celkom náklady na maľovanie: $ {0} ', Rect.getCost (oblasť)) Console.ReadKey ()}}}

//Výkon:

Celková plocha: 35
Celkové náklady na farbu: 2450 dolárov

Preťaženie

Preťaženie je situácia, keď máme dvoch alebo členov deklarovaných s rovnakým menom. Preťaženie je tiež možné, keď deklarujeme dve alebo viac metód s rovnakým názvom. Pozrime sa na príklady oboch.

Preťaženie členov

Príklad:

using 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))}}

//Výkon:

35
60

Metóda preťaženia

Príklad:

using 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))}}

//Výkon:

35
33,699997

Naliehavé

Prekonanie je situácia, keď podradená trieda definuje rovnakú metódu, ktorú definuje aj rodič. Poďme to pochopiť na malom príklade.

Príklad:

pomocou systému verejná trieda Edureka {public virtual void eat () {Console.WriteLine ('Eating')}} verejná trieda Pes: Edureka {public override void eat () {Console.WriteLine ('Eating food')}} verejná trieda Prepísanie {public static void Main () {Dog d = new Dog () d.eat ()}}

//Výkon:

Jesť jedlo

Menný priestor

The menný priestor sa v podstate používa na zvládnutie viacerých tried prítomných v programe. Obor názvov je k dispozícii rôznymi spôsobmi.

  • System.Console: Tu je Systém sa stáva menným priestorom
  • Na prístup do triedy menného priestoru je potrebné použiť namespacename.classname.
  • Môžeme použiť použitím kľúčové slovo tiež.

Príklad:

pomocou systému pomocou prvého použitia druhého menného priestoru najskôr {public class Edureka {public void sayWelcome () {Console.WriteLine ('Welcome To Edureka')}}} namespace Second {verejnej triedy Happy_Learning {public void sayWishes () {Console.WriteLine (' Happy Learning ')}}} verejná trieda Namespace {public static void Main () {Edureka h1 = nová Edureka () Happy_Learning w1 = nová Happy_Learning () h1.sayWelcome () w1.sayWishes ()}}

//Výkon:

Vitajte na Edureka
Šťastné učenie

Operácie so súbormi

The operácie so súbormi dostupné v C # sú nasledujúce:

Prevádzka Popis
BinaryReader Číta primitívne údaje z binárneho toku.
BinaryWriter Zapisuje primitívne údaje v binárnom formáte.
BufferedStream Dočasné úložisko pre prúd bajtov.
Adresár Pomáha pri manipulácii s adresárovou štruktúrou.
DirectoryInfo Používa sa na vykonávanie operácií v adresároch.
DriveInfo Poskytuje informácie o jednotkách.
Súbor Pomáha pri manipulácii so súbormi.
FileInfo Používa sa na vykonávanie operácií so súbormi.
FileStream Používa sa na čítanie a zápis do ľubovoľného umiestnenia v súbore.
MemoryStream Používa sa na náhodný prístup k streamovaným údajom uloženým v pamäti.
Cesta Vykonáva operácie s informáciami o ceste.
StreamReader Používa sa na čítanie znakov z bajtového toku.
StreamWriter Používa sa na písanie znakov do streamu.
StringReader Používa sa na čítanie z vyrovnávacej pamäte reťazca.
StringWriter Používa sa na zápis do medzipamäte reťazca.

FileMode

The FileMode je enumerátor, ktorý definuje viac metód otvárania súborov. Členovia FileMode Enumerator sú opísaní nasledovne:

  • Pripojiť: Otvorí existujúci súbor a umiestni kurzor na koniec súboru alebo ho vytvorí, ak súbor neexistuje.
  • Vytvoriť: Je navrhnutý tak, aby vytvoril nový súbor.
  • Vytvor nový: Je navrhnutý tak, aby určoval operačný systém, že má vytvoriť nový súbor.
  • Otvorené: Je navrhnutý tak, aby otvoril existujúci súbor.
  • OpenOrCreate: Je navrhnutý tak, aby určoval operačný systém, ktorý by mal otvoriť súbor, ak existuje, inak by mal vytvoriť nový súbor.
  • Skrátiť: Skrátiť otvorí existujúci súbor a skráti jeho veľkosť na nula bajtov.

FileAccess

FileAccess Enumerátor slúži na získanie prístupu k určitému súboru. Má nasledujúcich členov.

  • Čítať
  • Napíš
  • Čítaj píš

FileShare

The Zdieľanie súborov Enumerátor sa používa na zdieľanie konkrétneho súboru. Má nasledujúcich členov.

  • Dediteľné: Inheritable umožňuje súboru spracovať dedičstvo na podradené procesy.
  • Žiadne: Žiadne odmietne zdieľanie aktuálneho súboru
  • Čítať: Čítanie umožňuje otvoriť súbor na čítanie.
  • Čítaj píš: ReadWrite umožňuje otvorenie súboru na čítanie a zápis.
  • Napíš: Zápis umožňuje otvorenie súboru na zápis.

Diania

Udalosť je všeobecne známa ako akcia, ktorá je vygenerovaná používateľom. Môže to byť kliknutie myšou a dokonca jediný stlačenie klávesnice. Podobne aj programy C # majú udalosti. Generátor udalosti sa nazýva vydavateľ a prijímač udalosti sa nazýva predplatiteľ.

Vydavateľ

TO vydavateľ obsahuje definíciu udalosti a delegáta. The delegát podujatia asociácia je definovaná v tomto objekte. A vydavateľ objekt triedy vyvolá udalosť a je upozornený na ďalšie objekty.

Predplatiteľ

TO predplatiteľ prijíma podujatie a poskytuje obsluha udalosti. The delegovať v triede vydavateľa vyvolá metódu / udalosť psovod triedy predplatiteľa.

Príklad:

pomocou System namespace Edureka {public delegate string Del (string str) class EventBlock {event Del NewEvent public EventBlock () {this.NewEvent + = new Del (this.WelcomeUser)} public string WelcomeUser (string username) {return 'Welcome to Edureka . '+ username} static void Main (string [] args) {EventBlock obj1 = new EventBlock () string result = obj1.NewEvent (' Happy Learning ') Console.WriteLine (result)}}}

//Výkon:

Vitajte na Edureka. Šťastné učenie

Generiká

Generiká je koncept poskytovania členom a metódam triedy zástupcom v Beh programu. Generiku môžeme definovať pomocou zátvorky. Pozrime sa na nasledujúce príklady.

Generiká v triede

using System namespace Edureka {class GenericClass {public GenericClass (T msg) {Console.WriteLine (msg)}} class Program {static void Main (string [] args) {GenericClass gen = new GenericClass ('This message is from generic class' ) GenericClass genI = nový GenericClass (123) GenericClass getCh = nový GenericClass ('E')}}}

//Výkon:

Táto správa pochádza z generickej triedy
123
JE

Generiká v metóde

pomocou System namespace Edureka {class GenericClass {public void Show (T msg) {Console.WriteLine (msg)}} class Program {static void Main (string [] args) {GenericClass genC = new GenericClass () genC.Show ('This správa pochádza z generickej metódy ') genC.Show (321) genC.Show (' H ')}}}

//Výkon:

Táto správa pochádza z generickej metódy
321
H

Delegáti

The Delegát slúži ako odkaz na metódu. V zásade je to rovnaké ako a ukazovateľ funkcie v C a C ++, ale oveľa lepšie a typovo bezpečné. Delegát v statická metóda iba zapuzdruje metódu. Zatiaľ čo delegát v inštancia metóda zapuzdruje metódu aj inštanciu. Najlepšie využiť delegáta je použiť ako udalosť.

Príklad:

using 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 jeden delegát, nové číslo je: '+ getNumber ()) c2 (3) Console.WriteLine (' Po dvoch delegátoch je nové číslo: '+ getNumber ())}}

//Výkon:

Po kalkulačke jedného delegáta je nové číslo: 45
Po kalkulačke dvoch delegátov je nové číslo: 135

Odraz

Na získanie metadát za behu je potrebná reflexia. Referencia je k dispozícii v Systém. Reflexia menný priestor. Vyžaduje vykonanie nasledujúcich tried.

  • Typ
  • MemberInfo
  • ConstructorInfo
  • MethodInfo
  • FieldInfo
  • PropertyInfo
  • TypeInfo
  • EventInfo
  • Modul
  • zhromaždenie
  • AssemblyName
  • Ukazovateľ

Typová trieda

Trieda typu C # predstavuje typové vyhlásenia pre typy tried, typy rozhraní, typy výčtu, typy polí, typy hodnôt

Vlastnosti typu

Zoznam dôležitých vlastností tried Type je uvedený nižšie.

Nehnuteľnosť Popis
zhromaždenie Získava zhromaždenie pre tento typ.
AssemblyQualifiedName Získava kvalifikovaný názov zhromaždenia pre tento typ.
Atribúty Získava atribúty spojené s typom.
BaseType Získava základný alebo nadradený typ.
Celé meno Získa úplný názov typu.
IsAbstract sa používa na kontrolu, či je typ Abstrakt.
IsArray sa používa na kontrolu, či je typ Array.
IsClass sa používa na kontrolu, či je typ Class.
IsEnum sa používa na kontrolu, či je typ Enum.
IsInterface sa používa na kontrolu, či je typ rozhrania.
IsNested sa používa na kontrolu, či je typ Vnorené.
IsPrimitive sa používa na kontrolu, či je typ primitívny.
IsPointer sa používa na kontrolu, či je typ Ukazovateľ.
IsNotPublic sa používa na kontrolu, či typ nie je verejný.
IsPublic sa používa na kontrolu, či je typ Verejný.
Je zapečatené sa používa na kontrolu, či je typ zapečatený.
IsSerializable sa používa na kontrolu, či je typ Serializovateľný.
MemberType sa používa na kontrolu, či je typ Členský typ vnoreného typu.
Modul Získava modul typu.
názov Získa názov typu.
Menný priestor Získa menný priestor typu.
Nehnuteľnosť Popis
GetConstructors () Vráti všetky verejné konštruktory pre Type.
GetConstructors (BindingFlags) Vráti všetky konštruktory pre Type so zadanými BindingFlags.
GetFields () Vráti všetky verejné polia pre Type.
GetFields (BindingFlags) Vráti všetky verejné konštruktory pre Type so zadanou BindingFlags.
GetMembers () Vráti všetkých verejných členov pre Type.
GetMembers (BindingFlags) Vráti všetkých členov pre Type so zadanými BindingFlags.
GetMethods () Vráti všetky verejné metódy pre Type.
GetMethods (BindingFlags) Vráti všetky metódy pre Type so zadanou hodnotou BindingFlags.
GetProperties () Vráti všetky verejné vlastnosti pre Type.
GetProperties (BindingFlags) Vráti všetky vlastnosti pre Type so zadanými BindingFlags.
GetType () Získava aktuálny typ.
GetType (reťazec) Získava Type pre dané meno.

Príklady reflexie:

Získajte typ

Príklad:

pomocou verejnej triedy systému GetType {public static void Main () {int a = 10 Type type = a.GetType () Console.WriteLine (type)}}

//Výkon:

System.Int32

Získajte zhromaždenie

Príklad:

pomocou systému pomocou verejnej triedy System.Reflection GetAssembly {public static void Main () {Type t = typeof (System.String) Console.WriteLine (t.Assembly)}}

//Výkon:

System.Private.CoreLib, verzia = 4.0.0.0, kultúra = neutrálna, PublicKeyToken = 7cec85d7bea7798e

Informácie o type tlače

Príklad:

pomocou systému pomocou verejnej triedy System.Reflection 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)}}

//Výkon:

Pravdaže
Falošné
Falošné

Konštruktéri tlače

Príklad:

pomocou systému pomocou verejnej triedy System.Reflection 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 v ci) {Console.WriteLine (c)}}}

//Výkon:

Konštruktéri typu System.String ...
Neplatný herec (znak [])
Prázdny .ctor (Char [], Int32, Int32)
Neplatný herec (znak *)
Prázdny .ctor (Char *, Int32, Int32)
Prázdny .ctor (SByte *)
Prázdny .ctor (SByte *, Int32, Int32)
Prázdny .ctor (SByte *, Int32, Int32, System.Text.Encoding)
Void .ctor (Char, Int32)
Void .ctor (System.ReadOnlySpan`1 [System.Char])

Metódy tlače

Príklad:

pomocou systému pomocou verejnej triedy System.Reflection 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 v ci) {Console.WriteLine (m)}}}

//Výkon:

Metódy typu System.String ...
Nahradiť System.String (System.String, System.String)
System.String [] Rozdeliť (Char, System.StringSplitOptions)
System.String [] Rozdeliť (Char, Int32, System.StringSplitOptions)
System.String [] Rozdeliť (Znak [])
System.String [] Rozdeliť (Char [], Int32)
System.String [] Rozdeliť (Char [], System.StringSplitOptions)
System.String [] Rozdeliť (Char [], Int32, System.StringSplitOptions)
System.String [] Rozdelenie (System.String, System.StringSplitOptions)
System.String [] Rozdelenie (System.String, Int32, System.StringSplitOptions)
System.String [] Split (System.String [], System.StringSplitOptions)
System.String [] Rozdeliť (System.String [], Int32, System.StringSplitOptions) ......

Tlačové polia

Príklad:

pomocou systému pomocou verejnej triedy System.Reflection 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)}}}

//Výkon:

Polia typu System.String ...
System.String Prázdny

Prejdime teraz k niektorým pokročilým koncepciám programovania v C #

Pokročilé koncepty C #

Anonymná funkcia

Funkcia, ktorej chýba konkrétny názov, sa nazýva Anonymný Funkcie. V C # sú k dispozícii dva typy anonymných funkcií

  • Lambda výrazy
  • Anonymné metódy

Príklad:

pomocou 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)}}}

//Výkon:

Štvorec: 625

Anonymné metódy

The anonymná metóda poskytuje rovnakú funkcionalitu ako a výraz lambda, okrem toho, že nám umožňuje ignorovať zoznam parametrov.

Príklad:

pomocou System namespace AnonymousMethods {class Program {public delegate void AnonymousFun () static void Main (string [] args) {AnonymousFun fun = delegate () {Console.WriteLine ('This is anonymous function')} fun ()}}}

//Výkon:

Toto je anonymná funkcia

Viacvláknové

Viacvlákno je proces, pri ktorom sa vytvára viac vlákien a priraďuje sa k rôznym úlohám. šetrí to čas vykonávaním viacerých úloh súčasne. Trieda viacerých vlákien je k dispozícii v System.Titling menný priestor.

Obor názvov System.Threading

The System.Titling Obor názvov obsahuje triedy a rozhrania, ktoré uľahčujú prácu viacerých vlákien. Poskytuje triedy na synchronizáciu prostriedku vlákna. Zoznam bežne používaných tried je uvedený nižšie:

  • Závit
  • Mutex
  • Časovač
  • Monitor
  • Semafor
  • ThreadLocal
  • ThreadPool
  • Prchavé

Postup a niť

Proces je vlastne a žiadosť a považuje sa za a ťažká váha zložka. Na druhej strane je vlákno jedno samostatné modul celej žiadosti. to je ľahký v porovnaní s procesom

Životný cyklus vlákna

Každé vlákno má životný cyklus. Životný cyklus vlákna je definovaný v triede System.Threading.Thread. Nasledujú etapy životného cyklu ľubovoľného vlákna.

  • Nezačaté
  • Spustiteľné (pripravené na spustenie)
  • Beží
  • Nie je možné spustiť
  • Mŕtvy

Trieda Thread poskytuje nasledujúce vlastnosti a metódy nasledovne.

Vlastnosti vlákna

Nehnuteľnosť Popis
CurrentThread vráti inštanciu aktuálne bežiaceho vlákna.
Je nažive skontroluje, či je aktuálne vlákno živé alebo nie.
IsBackground Získanie / nastavenie hodnoty aktuálneho vlákna je na pozadí alebo nie.
ManagedThreadId sa používa na získanie jedinečného ID pre aktuálne spravované vlákno.
názov sa používa na získanie alebo nastavenie názvu aktuálneho vlákna.
Priorita sa používa na získanie alebo nastavenie priority aktuálneho vlákna.
ThreadState sa používa na vrátenie hodnoty predstavujúcej stav vlákna.

Metódy závitov

Metóda Popis
Potrat() sa používa na ukončenie vlákna. Zvyšuje ThreadAbortException.
Prerušiť() sa používa na prerušenie vlákna, ktoré je v stave WaitSleepJoin.
Pripojiť sa () sa používa na blokovanie všetkých volajúcich vlákien, kým sa toto vlákno neukončí.
ResetAbort () sa používa na zrušenie žiadosti o prerušenie pre aktuálne vlákno.
Pokračovať() sa používa na obnovenie zavesenej nite. Je zastaraný.
Spánok (Int32) sa používa na pozastavenie aktuálneho vlákna na zadané milisekundy.
Štart () zmení aktuálny stav vlákna na Runnable.
Pozastaviť () pozastaví aktuálne vlákno, ak nie je pozastavené. Je zastaraný.
Výnos () sa používa na získanie vykonania aktuálneho vlákna do iného vlákna.

Príklad hlavného vlákna

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

//Výkon:

MainThread

Spracovanie výnimiek

The výnimkou je chyba vyvolaná programom za behu programu. Vykonávame spracovanie výnimiek, aby bol náš program bez výnimiek.

Výnimka Popis
System.DivideByZeroException Chyba vygenerovaná vydelením čísla nulou.
System.NullReferenceException narába s chybou generovanou odkazom na nulový objekt.
System.InvalidCastException spracováva chybu generovanú neplatným obsadením.
System.IO.IOException spracováva chyby vstupu / výstupu.
System.FieldAccessException Chyba vygenerovaná neplatným súkromným / chráneným prístupom.

V C # používame na výkon 4 kľúčové slová spracovanie výnimiek:

  • skús
  • chytiť
  • konečne, a
  • hodiť
Príklad:
pomocou systému public class EdurekExample {public static void Main (string [] args) {try {int a = 10 int b = 0 int x = a / b} catch (Výnimka e) {Console.WriteLine (e)} Console.WriteLine ('Táto správa pochádza z bloku úlovkov')}}

//Výkon:

System.DivideByZeroException: Pokus o delenie nulou.
na ExExaEdurekample.Main (String [] args) v F: C # TutorialC # ProgramyConsoleApp1ConsoleApp1Program.cs: riadok 10
Táto správa pochádza z bloku úlovkov

Prispôsobený príklad výnimky

pomocou verejnej triedy systému InvalidAgeException: výnimka {public InvalidAgeException (reťazcová správa): základná (správa) {}} verejná trieda prispôsobená {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.') } } 

//Výkon:

InvalidAgeException: Je nám ľúto, predpokladá sa, že vek bude vyšší ako 18 rokov
na Customized.validate (vek Int32) v F: C # TutorialC # ProgramyConsoleApp1ConsoleApp1Program.cs: riadok 18
na Customized.Main (String [] args) v F: C # TutorialC # ProgramyConsoleApp1ConsoleApp1Program.cs: riadok 23
Blokovanie úlovkov sa práve vykonáva.

Na záver blok príklad

pomocou 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)} konečne {Console .WriteLine ('Konečne je blok vykonaný')} Console.WriteLine ('Je vykonaný blokovanie')}}

//Výkon:

System.DivideByZeroException: Pokus o delenie nulou.
na FinalExecption.Main (String [] args) v F: C # TutorialC # ProgramyConsoleApp1ConsoleApp1Program.cs: riadok 10
Nakoniec je blok vykonaný
Blokovanie úlovkov sa vykoná

Podpis systémovej výnimky

[SerializableAttribute] [ComVisibleAttribute (true)] verejná trieda SystemException: Výnimka

Konštruktéri systémových výnimiek

Staviteľ Popis
SystemException () Používa sa na inicializáciu novej inštancie triedy SystemException.
Výnimka systému

(SerializationInfo, StreamingContext)

Používa sa na inicializáciu novej inštancie triedy SystemException so serializovanými údajmi.
SystemException (reťazec) Používa sa na inicializáciu novej inštancie triedy SystemException zadanou chybovou správou.
SystemException (String, Exception) Používa sa na inicializáciu novej inštancie triedy SystemException so zadanou chybovou správou a odkazom na vnútornú výnimku, ktorá je príčinou tejto výnimky.

Vlastnosti systémových výnimiek

Nehnuteľnosť Popis
Údaje Používa sa na získanie kolekcie párov kľúč / hodnota, ktoré poskytujú ďalšie používateľom definované informácie o výnimke.
HelpLink Používa sa na získanie alebo nastavenie odkazu na súbor pomocníka spojený s touto výnimkou.
HResult Používa sa na získanie alebo nastavenie HRESULT, kódovanej číselnej hodnoty, ktorá je priradená konkrétnej výnimke.
Vnútorná výnimka Používa sa na získanie inštancie výnimky, ktorá spôsobila aktuálnu výnimku.
Správa Používa sa na získanie správy, ktorá popisuje aktuálnu výnimku.
Zdroj Používa sa na získanie alebo nastavenie názvu aplikácie, ktorá spôsobuje chybu.
StackTrace Používa sa na získanie reťazcového vyjadrenia okamžitých rámcov v zásobníku hovorov.
TargetSite Používa sa na získanie metódy, ktorá vyvolá aktuálnu výnimku.

Metódy výnimiek zo systému

Metódy Popis
Rovná sa (objekt) Používa sa na kontrolu toho, či sa zadaný objekt rovná alebo nezhoduje s aktuálnym objektom.
Dokončiť () Používa sa na uvoľnenie zdrojov a vykonávanie operácií čistenia.
GetBaseException () Používa sa na získanie koreňovej výnimky.
GetHashCode () Používa sa na získanie hash kódu.
GetObjectData

(SerializationInfo, StreamingContext)

Používa sa na získanie údajov o objektoch.
GetType () Používa sa na získanie typu runtime aktuálnej inštancie.
MemberwiseClone () Používa sa na vytvorenie plytkej kópie aktuálneho objektu.
Natiahnuť() Používa sa na vytvorenie a vrátenie reťazcovej reprezentácie aktuálnej výnimky.

Príklad systémovej výnimky

pomocou 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)} }}}

//Výkon:

System.IndexOutOfRangeException: Index bol mimo hraníc poľa.
na CSharpProgram.SystemExceptionExample.Main (String [] args) v F: C # TutorialC # ProgramsConsoleApp1ConsoleApp1Program.cs: riadok 11

Synchronizácia

Synchronizácia môže byť technika, ktorá umožňuje iba 1 vláknu prístup k prostriedku na konkrétny čas. Žiadne alternatívne vlákno sa nepreruší, kým určené vlákno nedokončí svoju úlohu.

V programe viacerých vlákien sú vlákna povolenépre prístup k akýmkoľvek zdrojom prešpecifikovaná exekúciačas. Vlákna zdieľajú zdroje a vykonávajú sa asynchrónne. Prístup k zdieľaným zdrojom (údaje)môže byť dôležitou úlohouže všeobecnemohol zastaviťsystém.máme tendenciu to ovplyvňovaťvytváraním vlákien synchrónnym spôsobom.

Príklad bez synchronizácie

pomocou systému pomocou triedy System.Threading 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() } } 

//Výkon:

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

Príklad so synchronizáciou

pomocou systému pomocou triedy System.Threading 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() } } 

//Výkon:

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

Nové funkcie

Spoločnosť Microsoft pridala do jazyka C # mnoho najnovších funkcií, niektoré z nich sú uvedené nižšie.

C # 6.0

  • Použitie statickej smernice
  • Filtre výnimiek
  • Čakajte na catch / konečne bloky
  • Automatické inicializátory vlastností
  • Predvolené hodnoty pre vlastnosti iba pre getra
  • Členovia s výrazom
  • Nulový propagátor
  • Interpolácia reťazcov
  • Meno operátora
  • Inicializátor slovníka
  • Prekladač ako služba (Roslyn)

C # 7.0

  • Zhoda vzorov
  • N-tice
  • Dekonštrukcia
  • Miestne funkcie
  • Oddeľovač číslic
  • Binárne literály
  • Ref sa vracia a miestni
  • Konštruktory a finalizátory s výrazovými telesami
  • Získavatelia a nastavovatelia prejavu tela
  • Von premenné
  • Zovšeobecnené typy asynchronného návratu

C # 7.1

  • Async main
  • Predvolené výrazy

Dotazy na rozhovor založené na C #

Dôležité otázky týkajúce sa pohovoru založené na programovacom jazyku C # nájdete v tejto aktualizácii .

Týmto sa dostávame na koniec tohto článku „C # Tutorial“. Dúfam, že ste pochopili dôležitosť dátových štruktúr, syntaxe, funkčnosti a operácií vykonávaných s nimi. Teraz, keď ste týmto pochopili základy programovania v jazyku C #Výukový program C #, pozrite sa na poskytnuté školenie od spoločnosti Edureka na mnohých technológiách, ako je Java, Jar a veľadôveryhodná online vzdelávacia spoločnosť so sieťou viac ako 250 000 spokojných študentov z celého sveta získala otázka pre nás? Uveďte to v sekcii komentárov tohto blogu „C # Tutorial“ a my sa vám ozveme čo najskôr.