SORU
13 Mayıs 2011, Cuma


Nasıl null int int dönüştürmek için

Nasıl int 5* *null dönüştürmek için?

Aşağıdaki gibidir: int 2 tip var sanırım

int? v1;  
int v2; 

V2 için v1 değeri assgin istiyorum. v2 = v1; hata alırsınız. Nasıl v2 için v1 dönüştürmek için?

CEVAP
13 Mayıs 2011, Cuma


Diğer cevapları şimdiye kadar hepsi doğru, sadece biraz daha temiz olan bir tane daha eklemek istedim:

v2 = v1 ?? default(int);

Nullable<T> T, tüm ifade değerlendirilen hiç bir ValueType boş bir ödev olarak sunduğu örtük olarak dönüştürülebilir. Yani 12* *boş birleşiyor, operatör sadece üçlü operatör için şeker sözdizimi:

v2 = v1 == null ? default(int) : v1;

...olan, şeker sözdizimi için bir if/else:

if(v1==null)
   v2 = default(int);
else
   v2 = v1;

Ayrıca, gibi .Bir 4.0, 15* *NET "() GetValueOrDefault" temelde gerçekleştiren null güvenli bir alıcı olan yöntem, boş birleşiyor bu da işe yarar çok yukarıda gösterilen:

v2 = v1.GetValueOrDefault();

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Leigh Momii

    Leigh Momii

    10 Mayıs 2006
  • picster

    picster

    20 NİSAN 2006
  • The Bad Tutorials

    The Bad Tuto

    6 EKİM 2009