21 Ağustos 2017 Pazartesi

Null Conditional Operator

Getter
Primitive tipler için şöyle yaparız.
int? length = customers?.Length; // null if customers is null 
Nesneler için şöyle yaparız.
Customer first = customers?[0];
Getter ve if
Açıklaması şöyle
if in fact the value of the object is null, the null-conditional operator will return null. It short-circuits the call to Bar, and immediately returns null, avoiding the programming error that would otherwise result in a NullReferenceException.
If koşulu sol ve sağ taraf için de geçerlidir. Açıklaması şöyle
When you perform comparisons with nullable types, if the value of one of the nullable types is null and the other is not, all comparisons evaluate to false except for != (not equal).
Şöyle yaparız.
if (foo?.Bar > max)
{
   // do something
}
Method Invocation
Foo bir event olsun. Şöyle yaparız. Bu kısmı ben de çok anlamadım :)
Foo?.Invoke(this, EventArgs.Empty);
Null Conditional Operator vs Null-Parameter Check
Null-Parameter Check C#11 ile geliyor. Null-Parameter Check nesne null ise exception fırlatır
Örnek
Elimizde şöyle bir kod olsun
public void Foo(string bar!!)
{
}
Bu kod aslında şununla aynı
public void Foo(string bar)
{
    if (bar is null)
    {
        throw new ArgumentNullException(nameof(bar));
    }
}



Hiç yorum yok:

Yorum Gönder