SORU
14 Kasım 2008, Cuma


Mark parametre olarak null C#/.NET?

Var C geçiliyor null engelleyen fonksiyon bir parametre için#/görevlendirebilirim basit öznitelik veya veri sözleşme.NET? İdeal olarak bu da zaman null her yerde çalışma zamanı sırasında ve kullanılmıyor değişmez ArgumentNullException atmak emin olmak için derleme zamanında kontrol eder.

Şu anda böyle bir şey yazıyorum ...

if (null == arg)
  throw new ArgumentNullException("arg");

... için null. olmasını beklemek her tartışmayı ben

Aynı kayda göre, aşağıdaki başarısız olur mademki orada Nullable<> tersi:

NonNullable<string> s = null; // throw some kind of exception

CEVAP
14 Kasım 2008, Cuma


Hiçbir şey derleme zamanı boş, ne yazık ki yok.

Yapı ve dönüşüm yeni kullanan blogumda son zamanlarda yayınlanan hacky solution biraz var.

.Code Contracts malzeme ile NET 4.0, hayat çok daha güzel olacak. Hala gerçek dili olmayan null etrafında sözdizimi ve destek olması çok güzel olurdu, ama kod sözleşmeler çok yardımcı olacaktır.

Ben de biraz daha basit bir hale getirir MiscUtil adlı ThrowİfNull uzantısı yöntemi.

Son bir nokta kullanarak herhangi bir nedenle "if (null == arg)" yerine "if (arg == null)"? İkincisi daha kolay okunur buluyorum, ve eski C problemi çözer C için geçerli değildir#.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Android Central

    Android Cent

    13 Kasım 2008
  • fouseyTUBE

    fouseyTUBE

    21 Mart 2011
  • HTC

    HTC

    12 Ocak 2006