தங்கள் .NET நிபுணத்துவத்தை நிரூபிக்க விரும்பும் எவருக்கும் இந்தக் கட்டுரை சரியானது!
வணக்கம் .NET டெவலப்பர்கள்,
இந்தக் கட்டுரையில், ஒவ்வொரு டெவலப்பரும் தெரிந்துகொள்ள வேண்டிய வெவ்வேறு C# கருத்துகளை நான் ஆராய்வேன். உங்கள் அறிவைச் சோதிப்பது எப்போதுமே ஒரு சிறந்த யோசனையாகும், மேலும் இந்த கட்டுரையில் விளக்கங்கள் மற்றும் குறியீடு எடுத்துக்காட்டுகளுடன் சில எடுத்துக்காட்டுகளை ஒன்றாக இணைத்துள்ளேன்.
குறியீட்டு எடுத்துக்காட்டுகளை நீங்கள் அறிந்திருந்தால் மற்றும் புரிந்து கொண்டால், நீங்கள் .NET இல் சிறப்பாக செயல்படுவீர்கள்.
C# இல் தர்க்கத்தை எழுதும் போது, டெவலப்பர்கள் IEnumerable<T> மற்றும் ICollection<T> ஐ அடிக்கடி சந்திக்கின்றனர். அவை மிகவும் ஒத்ததாக இருக்கலாம், ஆனால் அவை மென்பொருள் உருவாக்கத்தில் வெவ்வேறு நோக்கங்களுக்காக சேவை செய்கின்றன.
தரவு கையாளுதல் அனுமதிக்கப்படாததால், மிகவும் பாதுகாப்பான ஒரு இலகுரக சேகரிப்பை வைத்திருப்பது நல்லது. எந்தவொரு சேகரிப்பும் தரவு கையாளுதலைத் தடுக்க விரும்பினால், 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> விரிவாக்கம் IEnumerable<T> மாற்றும் முறைகளின் உதவியுடன் மாற்றங்களை அனுமதிக்கிறது. இந்த இடைமுகம் சேகரிப்பில் எண்ணிக்கையைச் சேர்க்க, நீக்க மற்றும் சரிபார்க்கும் முறைகளைக் கொண்டுள்ளது.
ICollection<int> data = new List<int> { 12,43,556}; numbers.Add(4); Console.WriteLine(data.Count); // Outputs: 4
சேகரிப்புக்கு மாற்று முறைகள் தேவைப்படும்போது Icollection<T> மற்றும் எளிமையான வாசிப்பு செயல்களுக்கு IEnumerable<T> பரிந்துரைக்கப்படுகிறது.
நீங்கள் தளர்வாக இணைக்கப்பட்ட & சோதிக்கக்கூடிய குறியீட்டை எழுத விரும்பினால், DI வடிவமைப்பு வடிவத்தைப் பயன்படுத்த பரிந்துரைக்கப்படுகிறது, i. DI உடன், டெவலப்பர்கள் வகுப்புகளுக்கு இடையே உள்ள சார்புகளை எளிதாக நிர்வகிக்க முடியும்.
.NET கோர் DIக்கான உள்ளமைக்கப்பட்ட ஆதரவைக் கொண்டுள்ளது, இது செயல்படுத்துவதை எளிதாக்குகிறது.
ஒரு டெவலப்பர் எப்படி C# இல் DI ஐ செயல்படுத்த முடியும்
public void ConfigureServices(IServiceCollection services) { // Register a transient service services.AddTransient<IMyService, MyService>(); }
public class MyController : Controller { private readonly IMyService _myService; public MyController(IMyService myService) { _myService = myService; } public IActionResult Index() { var data = _myService.GetData(); return View(data); } }
ஒரு டெவலப்பர் சேவைகளின் உருவாக்கத்தை துண்டிக்கும்போது ஒரு குறியீடு மிகவும் பராமரிக்கக்கூடியது மற்றும் சோதிக்கக்கூடியது.
C# இல், குறிப்பு மூலம் அளவுருக்களை அனுப்ப, ref மற்றும் out ஆகியவை பயன்படுத்தப்படுகின்றன, ஆனால் அவை தனித்துவமான பண்புகளைக் கொண்டுள்ளன.
public void UpdateValue(ref int number) { number += 10; } int myNumber = 5; UpdateValue(ref myNumber); Console.WriteLine(myNumber); // Outputs: 15
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 பொதுவாகப் பயன்படுத்தப்படுகிறது, அதே சமயம் ஒரு முறை பல மதிப்புகளைத் திரும்பப் பெற அல்லது அழைப்பாளரால் வழங்கப்படாத மதிப்புகளைத் தொடங்கும் போது அவுட் பயன்படுத்தப்படுகிறது.
.NET இல், சுமையின் கீழ் சிறப்பாக செயல்படும் திறமையான பயன்பாடுகளை எழுதுவதற்கு ஒத்திசைவற்ற நிரலாக்கம் அவசியம். ஒத்திசைவு மற்றும் காத்திருக்கும் முக்கிய வார்த்தைகள் ஒத்திசைவற்ற செயல்பாடுகளுடன் வேலை செய்வதை எளிதாக்குகின்றன.
public async Task<string> FetchDataAsync() { await Task.Delay(1000); // Simulates an asynchronous operation return "Data fetched"; }
public async Task ShowDataAsync() { string data = await FetchDataAsync(); Console.WriteLine(data); }
உங்கள் பயன்பாட்டின் செயல்திறனை மேம்படுத்த விரும்பினால், ஒத்திசைவைப் பயன்படுத்தவும் மற்றும் திறம்பட காத்திருக்கவும், அதே நேரத்தில் பயன்பாட்டு UI ஐப் பதிலளிக்கவும்.
வலுவான மற்றும் பயனர் நட்பு பயன்பாடுகளைப் பராமரிக்க விதிவிலக்குகளை அழகாகக் கையாள்வது மிகவும் முக்கியமானது. .NET கோர் விதிவிலக்கு கையாளுதலுக்கான பல்வேறு வழிமுறைகளை வழங்குகிறது.
try { int result = 10 / 0; // This will throw a DivideByZeroException } catch (DivideByZeroException ex) { Console.WriteLine("An error occurred: " + ex.Message); }
public void Configure(IApplicationBuilder app) { app.UseExceptionHandler("/Home/Error"); }
உலகளாவிய விதிவிலக்கு கையாளுதல் மிடில்வேர் அனைத்து பயன்பாட்டு பிழைகள் மற்றும் விதிவிலக்குகளைக் கையாள ஒரு பொதுவான இடத்தை வழங்குகிறது. பயன்பாடு தொடர்ந்து பதில்களைக் கையாளுவதை இது உறுதி செய்கிறது.
appsettings.json கோப்பு, உள்ளமைவு சரங்கள் மற்றும் பிற பயன்பாடு சார்ந்த விசைகள் போன்ற பயன்பாட்டுச் சான்றுகளை நிர்வகிக்கப் பயன்படுகிறது. கட்டமைப்பு அமைப்புகளை சூழலுக்கு ஏற்ப பிரிக்கலாம்
{ "ConnectionStrings": { "DefaultConnection": "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;" }, "Logging": { "LogLevel": { "Default": "Warning" } } }
public class MyService { private readonly string _connectionString; public MyService(IConfiguration configuration) { _connectionString = configuration.GetConnectionString("DefaultConnection"); } }
appsettings.json கோப்பு, உள்ளமைவு அமைப்புகளை எளிதாகப் பெற அனுமதிக்கிறது, திறமையாக கையாள வேண்டும்.
டாஸ்க் மற்றும் த்ரெட் இரண்டும் C# இல் ஒரே நேரத்தில் நிரலாக்கத்திற்குப் பயன்படுத்தப்படுகின்றன, ஆனால் அவை வெவ்வேறு நோக்கங்களுக்குச் சேவை செய்கின்றன.
Thread thread = new Thread(() => { Console.WriteLine("Running on a new thread"); }); thread.Start();
Task.Run(() => { Console.WriteLine("Running asynchronously"); });
பணிகள் ஒத்திசைவற்ற செயல்பாடுகளின் நிர்வாகத்தை எளிதாக்குகின்றன மற்றும் நவீன C# மேம்பாட்டிற்கு பெரும்பாலும் விருப்பமான தேர்வாகும்.
முழுமையான C# .Net நேர்காணல் தொடரை அணுகவும்
நீங்கள் நம்பிக்கையுடன் கருத்தை அறிந்திருந்தால் மற்றும் குறியீட்டு எடுத்துக்காட்டுகளைப் புரிந்து கொண்டால், நீங்கள் .NET இல் நன்கு அறிந்தவராக இருக்கலாம்.
உரையாடலைத் தொடர்வோம், ஒருவருக்கொருவர் .NET நிபுணர்களாக வளர உதவுவோம்.
மகிழ்ச்சியான குறியீட்டு!