SORU
11 Mayıs 2009, PAZARTESİ


C#, boş bir nesne üzerinde bir uzantı yöntemini çağırdığınızda ne olur?

Yöntem null değerine sahip olur mu ya da bir null başvuru özel veriyor mu?

MyObject myObject = null;
myObject.MyExtensionMethod(); // <-- is this a null reference exception?

Eğer bu asla benim kontrol edeceğim durum 'bu' boş parametre?

CEVAP
11 Mayıs 2009, PAZARTESİ


Sorun (istisna) çalışacak. Uzatma yöntemleri sanal aramalar kullanmayın (örn. "" ıl talimat,"") callvirt uzatma yöntemi Kendin yazıyorsun sürece boş Çek mi yani yok. aramayın Bu aslında bazı durumlarda yararlıdır:

public static bool IsNullOrEmpty(this string value)
{
    return string.IsNullOrEmpty(value);
}
public static void ThrowIfNull<T>(this T obj, string parameterName)
        where T : class
{
    if(obj == null) throw new ArgumentNullException(parameterName);
}

vb

Temelde, statik çağrıları çağrıları çok edebi vardır yani

string s = ...
if(s.IsNullOrEmpty()) {...}

olur:

string s = ...
if(YourExtensionClass.IsNullOrEmpty(s)) {...}

belli ki boş Çek yoktur.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ampisound

    Ampisound

    12 Kasım 2006
  • David Tedeyev

    David Tedeye

    20 AĞUSTOS 2011
  • Joe DiFeo

    Joe DiFeo

    7 AĞUSTOS 2012