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

  • ASUS Campus Life

    ASUS Campus

    18 Mart 2013
  • CNNMoney

    CNNMoney

    16 Kasım 2006
  • IGN

    IGN

    19 EYLÜL 2006