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

  • apenney888

    apenney888

    27 EKİM 2010
  • gamingbits

    gamingbits

    2 Mayıs 2006
  • TechBalance

    TechBalance

    12 HAZİRAN 2011