EmployeeNumber =
string.IsNullOrEmpty(employeeNumberTextBox.Text)
? null
: Convert.ToInt32(employeeNumberTextBox.Text),
sık sık kendimi böyle şeyler yapmak isteyen bulmak (o bir özellik olduğu gibi EmployeeNumber
bir Nullable<int>
bir LINQ SQL sütun NULL değerleri verir nereye itiraz dbml). Ne yazık ki, derleyici, her iki türün bir ataçman işleminde kendi başına null edilebilen bir int için geçerli olsa bile, "null" ve "int" arasında herhangi bir örtük dönüşüm yoktur.NULLL <value> türleriyle koşullu operatör ataması?
Sıfır birleştirici işleç, null değilse .Text dizesinde gerçekleşmesi gereken satır içi dönüştürme nedeniyle görebildiğim kadar bir seçenek değil.
Bunu yapmanın tek yolunun, bir if ifadesi kullanmak ve/veya iki adımda atamak olduğunu bildiğim kadarıyla. Bu özel durumda, çok sinir bozucu olduğunu buldum çünkü nesne başlatıcı sözdizimini kullanmak istedim ve bu atama, başlatma bloğunda olurdu ...
Daha şık bir çözüm bilen var mı?
Eric Lippert ile ilgili blog girişini kontrol edin: [Inference woes, part one yazın] (http://blogs.msdn.com/ericlippert/archive/2006/05/24/type-inference-woes-part -one.aspx) – CodesInChaos
[Derleyici Hatası ** CS0173 **] (http://msdn.microsoft.com/en-us/library/vstudio/hb47kt2f%28v=vs.120%29.aspx) beni buraya getirdi. – DavidRR