2025 में C#: नए फीचर्स व्यवहार में

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

2025 में C#: व्यवहार में क्या नया है?

\n

.NET की दुनिया स्थिर नहीं है। 2025 में, C# भाषा सक्रिय रूप से विकसित हो रही है, जो डेवलपर्स को अधिक संक्षिप्त, सुरक्षित और कुशल कोड लिखने के लिए उपकरण प्रदान करती है। प्लेटफ़ॉर्म का प्रत्येक अपडेट दैनिक विकास को अधिक सुविधाजनक बनाता है, और नई भाषा संरचनाएं बॉयलरप्लेट कोड से छुटकारा पाने में मदद करती हैं।

\n

इस लेख में, हम 2025 में C# के तीन प्रमुख नवाचारों पर चर्चा करेंगे जिनका उपयोग आप अभी से शुरू कर सकते हैं। सभी कोड उदाहरण वास्तविक अभ्यास से लिए गए हैं और शैक्षिक पोर्टल pythonlib.ru के लिए अनुकूलित किए गए हैं।

\n\n

1. प्राइमरी कंस्ट्रक्टर (Primary Constructors)

\n

सबसे प्रतीक्षित नवाचारों में से एक क्लासेस और स्ट्रक्चर्स के लिए प्राइमरी कंस्ट्रक्टर है। पहले यह सुविधा केवल रिकॉर्ड (record) के लिए उपलब्ध थी। अब आप कंस्ट्रक्टर के पैरामीटर सीधे क्लास के हेडर में घोषित कर सकते हैं, जिससे कोड की मात्रा काफी कम हो जाती है।

\n

आइए एक उपयोगकर्ता मॉडल बनाने का क्लासिक उदाहरण देखें:

\n\n

पहले (C# 12 और उससे पहले):

\n
public class User\n{\n    public string Name { get; }\n    public int Age { get; }\n\n    public User(string name, int age)\n    {\n        Name = name;\n        Age = age;\n    }\n}
\n\n

अब (C# 2025):

\n
public class User(string name, int age)\n{\n    public string Name { get; } = name;\n    public int Age { get; } = age;\n    \n    public string Greeting => $"नमस्ते, {Name}! तुम {Age} साल के हो।";\n}
\n\n

जैसा कि आप देख सकते हैं, कोड साफ हो गया है। पैरामीटर name और age अब पूरे क्लास बॉडी में उपलब्ध हैं। यह ASP.NET Core में Dependency Injection (DI) के साथ काम करते समय विशेष रूप से सुविधाजनक है:

\n\n
public class WeatherService(HttpClient httpClient, ILogger<WeatherService> logger)\n{\n    public async Task<string> GetWeatherAsync(string city)\n    {\n        logger.LogInformation("शहर {City} के लिए मौसम का अनुरोध", city);\n        var response = await httpClient.GetStringAsync($"https://api.weather.com/{city}");\n        return response;\n    }\n}
\n\n

प्राइमरी कंस्ट्रक्टर कई फील्ड्स और स्पष्ट असाइनमेंट को छोड़ने की अनुमति देते हैं, जिससे कोड अधिक घोषणात्मक हो जाता है।

\n\n

2. नए प्रकार के कलेक्शन (Collection Expressions)

\n

2025 में, C# को कलेक्शन के साथ काम करने के लिए एक शक्तिशाली अपडेट मिला। अब आप लिस्ट, ऐरे और यहां तक कि Span<T> को एक समान सिंटैक्स - collection expressions के साथ इनिशियलाइज़ कर सकते हैं।

\n\n

नया सिंटैक्स कर्ली ब्रेसेस {} या new List<T>() के बजाय स्क्वायर ब्रेसेस [] का उपयोग करता है:

\n\n

विभिन्न कलेक्शन को इनिशियलाइज़ करने का उदाहरण:

\n
// ऐरे\nint[] numbers = [1, 2, 3, 4, 5];\n\n// लिस्ट\nList<string> names = ["अन्ना", "बोरिस", "विक्टर"];\n\n// Span (बिना एलोकेशन के काम करता है)\nSpan<char> letters = ['A', 'B', 'C'];
\n\n

मुख्य विशेषता स्प्रेड (spread) ऑपरेटर .. है। यह .Concat() या .AddRange() को कॉल किए बिना कलेक्शन को मर्ज करने की अनुमति देता है:

\n\n
int[] first = [1, 2, 3];\nint[] second = [4, 5, 6];\n\n// ऐरे का मर्ज\nint[] combined = [..first, ..second]; // [1, 2, 3, 4, 5, 6]\n\n// शुरुआत और अंत में एलिमेंट जोड़ना\nint[] extended = [0, ..combined, 7]; // [0, 1, 2, 3, 4, 5, 6, 7]
\n\n

यह सिंटैक्स न केवल ऐरे के साथ, बल्कि List<T>, HashSet<T> और यहां तक कि ICollection<T> को इम्प्लीमेंट करने वाले यूज़र-डिफ़ाइंड कलेक्शन के साथ भी काम करता है। Python के आदी डेवलपर्स के लिए, यह दृष्टिकोण बहुत परिचित और सहज लगेगा।

\n\n

3. बेहतर स्ट्रिंग इंटरपोलेशन और एक्सेप्शन हैंडलिंग

\n

C# 2025 में स्ट्रिंग इंटरपोलेशन को कई महत्वपूर्ण सुधार मिले हैं, जो इसे और भी अधिक लचीला बनाते हैं।

\n\n

3.1. nameof ऑपरेटर में इंटरपोलेशन

\n

अब आप कर सकते हैं

ब्लॉग

पुस्तक अनुशंसाएँ