Neden yapar .() Olabilirdi boş bir dize neden boş bir hata, ne zaman .() Olabilirdi çalışır null değeri null bir int iyi?
selectedItem
iki alan vardır:
int? _cost
string _serialNumber
Bu örnekte, _cost
selectedItem
_serialNumber
null. Özellikleri ile selectedItem
alanları ile okuma, ve onların değerleri ile metin kutularının doldurulması, zaman benim
TextBox1.Text = selectedItem.Cost.ToString(); //no error
TextBox2.Text = selectedItem.SerialNumber.ToString(); //error
SerialNumber.ToString()
gereksiz olduğunu anlıyorum zaten bir dize (çünkü), ama bu durum neden oluyor anlamıyorum:
Null olabilecek nesnenin bir değeri olması gerekir.
int? _cost
null bir değeri yok, henüz bana özel durum vermez.string _serialNumber
null bir değer, henüz yokyokbana özel ver.
Bu question üzerinde dokunur, adam temelde aynı şeyi soruyor, fakat belirlenmiş cevap yok, ve aynı zamanda int
neden açıklamıyor? Örneğin, boş bir dize null bir int ancak .ToString()
kullanabilir miyim?
CEVAP
string
tip null
gerçekten hiçbir şey için işaret ettiği için, bellek herhangi bir nesne yok.< / ^ br . Ama değer bile int?
type(null) bazı nesne null
hala puan olarak ayarlayın.< / ^ br . Eğer okuduğunuz Jeffrey Richter "CLR via C#" yakında öğrenirsiniz null türü sadece cephe sınıflar için ortak türleri ile bazı incapsulated mantık yapmak için iş ile DB boş daha uygun.
msdn null türleri hakkında bilgi edinmek için kontrol edin.
Neden Dönüştürmek.Olabilirdi(null) nul...
Neden 0 yapar.(&;#.##"&Olabilirdi quot...
Neden Boole yapar.Ve " değil olabi...
Neden bu (null || !yapar TryParse) &qu...
Neden / ne zaman Olabilirdi geçersiz k...