2009-08-14 29 views
59

Olası Çoğalt int:
Nullable types and the ternary operator: why is `? 10 : null` forbidden?C# kodu derlenmez. boş ve arasında hiçbir örtük dönüştürme

neden değil bu iş? Geçerli kod gibi görünüyor.

string cert = ddCovCert.SelectedValue; 
    int? x = (string.IsNullOrEmpty(cert)) ? null: int.Parse(cert); 
    Display(x); 

Bunu nasıl kodlamalıyım? Yöntem bir NULLLA alır. Aşağı açılan bir dize seçildiyse, bunu bir int dosyasına ayırmam gerekiyor, aksi halde null yöntemine geçmek istiyorum. Ben de aynı şeyi rastlamak ettik

+4

Kopyala (int?) - http://stackoverflow.com/questions/858080 bakın/nullable-types-and-the-ternary-operator-why-wont-this-work –

+1

Ayrıca, daha fazla bilgi için bkz. http://stackoverflow.com/questions/220250/in-c-why-cant-a- koşullu-operatör-dolaylı-cast-to-a-nullable-tipi –

cevap

195
int? x = string.IsNullOrEmpty(cert) ? (int?)null : int.Parse(cert); 
+0

güzel. Teşekkürler! – Hcabnettek

+0

Bazen buna ihtiyacım var, ama her zaman burada unut ve bitir: D. Teşekkürler – Steven

+0

Zamanımı kurtardım. Teşekkürler . –

7

... Ben genellikle sadece için null adlı dökme

int? x = (string.IsNullOrEmpty(cert)) ? (int?)null: int.Parse(cert); 
İlgili konular