Sadece 2010'dan 2015'e yükselttim. Ayrıca sıfır yayılımı olarak bilinen yeni null-conditional operator'u beğeniyorum. Bu, örneğin, kodunuzu basitleştirmek sağlar:Boş koşullu işleç bool değil bool için değerlendirir? beklendiği gibi
string firstCustomerName = customers?[0].Name; // null if customers or the first customer is null
diğeri:
birint
geçerli sayısı ve daha önce herhangi
nulls
arasında ayrım yapmak bir
Nullable<int>
bile
Enumerable.Count
eğer döner döner
int? count = customers?[0]?.Orders?.Count(); // null if customers, the first customer, or Orders is null
. Oldukça sezgisel ve çok kullanışlı.
Ama neden (Bu false
döndürür) beklendiği gibi bu derleme ve çalışma kapsamaz:
string text = null;
bool contains = text?.IndexOf("Foo", StringComparison.CurrentCultureIgnoreCase) >= 0;
Ya dönmelidir bool?
(öyle ki değil) derlemek ya da değil. Aslında ne var
Kimler var? yeniden yazmak: int? indexof = text? .IndexOf ("Foo", StringComparison.CurrentCultureIgnoreCase); bool şunu içerir = indexof> = 0; ' –
Bir?? = = operatör için oy kullanırdım.:) –
@DStanley: Yani diğer [operatör kategorileri] (https://msdn.microsoft.com/en-us/library/aa691323 (v = vs.71) .aspx) birincil olanı içerir? İyiden daha çok zarar verirdi. –