1. लैम्ब्डा एक्सप्रेशंस (Lambda Expressions)
=> टोकन ("goes to") का उपयोग करके अनाम फ़ंक्शन परिभाषित करें। LINQ, डेलीगेट्स, इवेंट हैंडलर में प्रयुक्त।
Funcadd = (x, y) => x + y; list.Where(x => x > 5);
2. नलेएबल टाइप्स (Nullable Types)
वैल्यू टाइप को null असाइन करने की अनुमति। सिंटैक्स: T? (जैसे int?, bool?)।
int? num = null; if (num.HasValue) Console.WriteLine(num.Value);
3. नल कोलेसिंग ऑपरेटर (Null Coalescing Operator - ??)
बाएं ऑपरेंड null न हो तो उसे लौटाता है, अन्यथा दायां ऑपरेंड।
string name = userName ?? "Guest"; int count = nullableInt ?? 0;
4. as कीवर्ड
सेफ कास्ट: सफल होने पर ऑब्जेक्ट लौटाता है, विफल होने पर null (अपवाद नहीं फेंकता)। केवल रेफरेंस/नलेएबल/बॉक्सिंग कन्वर्जन के लिए।
object obj = "hello"; string str = obj as string; // सफल int? num = obj as int?; // null (स्ट्रिंग को int? में कास्ट नहीं कर सकते)
5. अन्य उल्लेखनीय फीचर्स
- एक्सटेंशन मेथड्स: मौजूदा टाइप में मेथड जोड़ें (
thisपैरामीटर के साथ स्टैटिक मेथड)। - यील्ड रिटर्न (yield return): लेज़ी एन्यूमरेटर बनाने के लिए।
- नेम्ड/ऑप्शनल पैरामीटर्स:
void M(int x = 10, string y = "default")। - टपल्स (ValueTuple):
(int, string) t = (1, "one");। - पैटर्न मैचिंग:
if (obj is int i),switchएक्सप्रेशन।