paint-brush
7 pagrindinės sąvokos, kaip išbandyti savo .NET įgūdžius pateikė@ssukhpinder
Nauja istorija

7 pagrindinės sąvokos, kaip išbandyti savo .NET įgūdžius

pateikė Sukhpinder Singh7m2024/09/30
Read on Terminal Reader

Per ilgai; Skaityti

Šiame straipsnyje aptariamos svarbios C# sąvokos, skirtos .NET kūrėjams, įskaitant IEnumerable ir ICollection, priklausomybės įvedimą, asinchronizavimą / laukimą, nuorodos ir išvesties parametrus, išimčių tvarkymą ir skirtumus tarp užduoties ir gijos vienu metu programuojant. Jame pateikiami praktiniai kodo pavyzdžiai, skirti patikrinti ir pagilinti jūsų supratimą.
featured image - 7 pagrindinės sąvokos, kaip išbandyti savo .NET įgūdžius
Sukhpinder Singh HackerNoon profile picture
0-item
1-item
2-item
3-item

Šis straipsnis puikiai tinka visiems, norintiems įrodyti savo .NET žinias!


Sveiki, .NET kūrėjai,


Šiame straipsnyje išnagrinėsiu įvairias C# sąvokas, kurias turi žinoti kiekvienas kūrėjas. Visada yra puiki idėja pasitikrinti savo žinias, todėl šiame straipsnyje pateikiau keletą pavyzdžių su paaiškinimais ir kodų pavyzdžiais.


Jei žinote ir suprantate kodo pavyzdžius, greičiausiai jums puikiai sekasi naudoti .NET.

1. Skirtumas tarp IEnumerable<T> ir ICollection<T>

Rašydami logiką C# , kūrėjai dažnai susiduria su IEnumerable<T> ir ICollection<T>. Jie gali atrodyti gana panašūs, tačiau jie tarnauja skirtingiems programinės įrangos kūrimo tikslams.


  • IEnumerable<T> veikia kaip pagrindinė sąsaja nebendrinėms kolekcijoms. Tai padeda kartoti nustatyto tipo kolekciją.


Gerai turėti lengvą kolekciją, kuri yra saugesnė, nes negalima manipuliuoti duomenimis. Bet kokiai kolekcijai, jei norite išvengti manipuliavimo duomenimis, rekomenduojama naudoti IEnumerable<T>

 IEnumerable<int> numbers = new List<int> { 1, 2, 3 }; foreach (var number in numbers) { Console.WriteLine(number); // Outputs: 1 2 3 }
  • ICollection<T> išplečia IEnumerable<T> leidžia modifikuoti naudojant keitimo metodus. Ši sąsaja susideda iš metodų, kaip pridėti, pašalinti ir patikrinti skaičių kolekcijoje.


 ICollection<int> data = new List<int> { 12,43,556}; numbers.Add(4); Console.WriteLine(data.Count); // Outputs: 4

Rekomenduotina ICollection<T>, kai reikia keisti metodus rinkimui ir IEnumerable<T> paprastiems skaitymo veiksmams.

2. Priklausomybės įvedimo vaidmuo .NET Core

Rekomenduojama naudoti DI dizaino šabloną, kai norite parašyti laisvai susietą ir tikrinamą kodą, t. Naudodami DI, kūrėjai gali lengvai valdyti priklausomybes tarp klasių.


.NET Core turi integruotą DI palaikymą, todėl jį lengva įdiegti.


Kaip kūrėjas gali įdiegti DI C#

  • Registruokite paslaugas naudodami Startup.cs failo metodą ConfigureServices. Čia apibrėžiate, kurios paslaugos bus prieinamos injekcijoms.
 public void ConfigureServices(IServiceCollection services) { // Register a transient service services.AddTransient<IMyService, MyService>(); }


  • Įveskite paslaugas į savo klases per konstruktoriaus injekciją. Taip užtikrinama, kad jūsų klasės gaus savo priklausomybes, nereikės jų tiesiogiai kurti.
 public class MyController : Controller { private readonly IMyService _myService; public MyController(IMyService myService) { _myService = myService; } public IActionResult Index() { var data = _myService.GetData(); return View(data); } }

Kodas yra lengviau prižiūrimas ir išbandomas, kai kūrėjas atsieja paslaugų kūrimą.

3. Skirtumas tarp ref ir out parametrų

C# kalboje ref ir out naudojami parametrams perduoti pagal nuorodą, tačiau jie turi skirtingas charakteristikas.

  • ref parametrai reikalauja, kad kintamasis būtų inicijuotas prieš perduodant jį metodui. Tada metodas gali pakeisti kintamojo reikšmę.
 public void UpdateValue(ref int number) { number += 10; } int myNumber = 5; UpdateValue(ref myNumber); Console.WriteLine(myNumber); // Outputs: 15


  • išvesties parametrus prieš perduodant nereikia inicijuoti. Metodas turi priskirti reikšmę out parametrui, kol jis grįš.
 public void GetValues(out int value1, out int value2) { value1 = 10; value2 = 20; } GetValues(out int a, out int b); Console.WriteLine(a); // Outputs: 10 Console.WriteLine(b); // Outputs: 20

ref paprastai naudojamas, kai metodui reikia modifikuoti esamą kintamąjį, o out naudojamas, kai metodui reikia grąžinti kelias reikšmes arba inicijuoti reikšmes, kurių nepateikė skambinantis asmuo.

4. Asinchronizavimas ir laukimas: programos našumo gerinimas

.NET asinchroninis programavimas yra būtinas norint rašyti veiksmingas programas, kurios gerai veikia esant apkrovai. Asinchroniniai ir laukimo raktiniai žodžiai supaprastina darbą su asinchroninėmis operacijomis.

  • asinchroniniai metodai leidžia atlikti užduotis asinchroniškai. Pažymėkite metodą naudodami asinchroninį raktinį žodį, kad jame būtų galima naudoti laukimą.
 public async Task<string> FetchDataAsync() { await Task.Delay(1000); // Simulates an asynchronous operation return "Data fetched"; }


  • „Await“ padeda programos vartotojo sąsajai, nes neužblokuoja pagrindinės gijos.
 public async Task ShowDataAsync() { string data = await FetchDataAsync(); Console.WriteLine(data); }

Jei norite pagerinti programos našumą, naudokite asinchronizavimą ir laukite efektyviai ir tuo pačiu užtikrindami, kad programos vartotojo sąsaja bus reaguojama.

5. Išimčių tvarkymas .NET pagrindinėse programose

Grakščiai tvarkyti išimtis yra labai svarbu norint išlaikyti patikimas ir patogias programas. .NET Core pateikia įvairius išimčių tvarkymo mechanizmus.

  • Vietos išimčių tvarkymas: naudokite try-catch blokus, kad gautumėte ir tvarkytumėte išimtis.
 try { int result = 10 / 0; // This will throw a DivideByZeroException } catch (DivideByZeroException ex) { Console.WriteLine("An error occurred: " + ex.Message); }


  • Visuotinis išimčių tvarkymas ASP.NET Core gali būti valdomas naudojant tarpinę programinę įrangą. Stebėkite visų tipų išimtis bendroje vietoje, o tai padeda kūrėjams valdyti patogius / įprastus klaidų pranešimus vartotojams.
 public void Configure(IApplicationBuilder app) { app.UseExceptionHandler("/Home/Error"); }

Visuotinės išimčių tvarkymo tarpinė programinė įranga suteikia bendrą vietą visoms programų klaidoms ir išimtims tvarkyti. Tai užtikrina, kad programa nuosekliai tvarko atsakymus.

6. Appsettings.json ASP.NET Core vaidmuo

Failas appsettings.json naudojamas programos kredencialams, pvz., konfigūracijos eilutėms ir kitiems konkrečios programos raktams, tvarkyti. Konfigūracijos nustatymus taip pat galima suskirstyti pagal aplinką

  • Appsettings.json failo pavyzdys:
 { "ConnectionStrings": { "DefaultConnection": "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;" }, "Logging": { "LogLevel": { "Default": "Warning" } } }


  • Prieiga prie konfigūracijos verčių jūsų programoje yra paprasta naudojant integruotą konfigūravimo sistemą.
 public class MyService { private readonly string _connectionString; public MyService(IConfiguration configuration) { _connectionString = configuration.GetConnectionString("DefaultConnection"); } }

Failas appsettings.json leidžia lengvai gauti konfigūracijos nustatymus, todėl juos reikia tvarkyti efektyviai.

7. Užduočių ir gijų supratimas C#

Tiek „Task“, tiek „Tread“ yra naudojami tuo pačiu metu programuoti C#, tačiau jie naudojami skirtingiems tikslams.

  • Sriegis reiškia vieną vykdymo kelią ir yra žemesnio lygio konstrukcija. Tai suteikia daugiau galimybių valdyti vykdymą, bet reikalauja rankinio valdymo.
 Thread thread = new Thread(() => { Console.WriteLine("Running on a new thread"); }); thread.Start();


  • Užduotis suteikia abstrakčią funkciją, skirtą asinchronizavimo operacijoms įgyvendinti, ir yra naudojama kartu su async/laukti.
 Task.Run(() => { Console.WriteLine("Running asynchronously"); });

Užduotys supaprastina asinchroninių operacijų valdymą ir dažnai yra tinkamiausias pasirinkimas kuriant šiuolaikinį C#.


Pasiekite visą C# .Net interviu seriją

Taigi, kaip sekėsi?

Jei užtikrintai žinote sąvoką ir suprantate kodo pavyzdžius, greičiausiai esate gerai išmanantis .NET.

Tęskime pokalbį ir padėkime vieni kitiems augti kaip .NET profesionalams.


Laimingas kodavimas!