मैंने अभी वीएस 2010 से 2015 तक अपग्रेड किया है। मुझे नया null-conditional operator पसंद है जिसे नल-प्रोपेगेशन भी कहा जाता है। इस उदाहरण के लिए, अपने कोड को आसान बनाने के लिए सक्षम बनाता है:नल-सशर्त ऑपरेटर बूल को न करने का मूल्यांकन करता है? जैसा कि
string firstCustomerName = customers?[0].Name; // null if customers or the first customer is null
एक और एक:
int? count = customers?[0]?.Orders?.Count(); // null if customers, the first customer, or Orders is null
जो एक Nullable<int>
भी Enumerable.Count
अगर रिटर्न एक int
एक वैध गिनती और से पहले किसी भी nulls
के बीच अंतर करने देता है। यह काफी सहज और बहुत उपयोगी है।
लेकिन क्यों यह संकलन और काम के रूप में उम्मीद (यह रिटर्न false
) करता है:
string text = null;
bool contains = text?.IndexOf("Foo", StringComparison.CurrentCultureIgnoreCase) >= 0;
यह या तो लौटना चाहिए bool?
संकलन (नहीं जो यह करता है) या नहीं।
अरे, मुझे लगता है कि मुझे यह मिल गया है, आप कर सकते हैं इसे फिर से लिखें: 'int? indexof = text ?IndexOf ("Foo", StringComparison.CurrentCultureIgnoreCase); बूल में = indexof> = 0; ' –
मैं'?> = 'ऑपरेटर के लिए वोट दूंगा।:) –
@DStanley: तो प्राथमिक में से अन्य [ऑपरेटर श्रेणियां] (https://msdn.microsoft.com/en-us/library/aa691323 (v = vs.71) .aspx) शामिल है? अच्छा से ज्यादा नुकसान होगा। –