Neden't Sözlük<bool? bir, için bir anahtar olarak null kullanabilirsiniz dize>?
Görünüşe göre, eğer anahtar null türü ise bile olamaz anahtarı null
kullanın.
Bu kod:
var nullableBoolLabels = new System.Collections.Generic.Dictionary<bool?, string>
{
{ true, "Yes" },
{ false, "No" },
{ null, "(n/a)" }
};
...bu özel durum oluşur:
Değer null olamaz. Parametre adı: anahtar
Açıklama: işlenmeyen Bir özel durum geçerli web isteği yürütülürken oluştu. Bu hata hakkında daha fazla bilgi için yığın izlemesini gözden geçirin ve kod içinde kaynaklandığı yer.
[ArgumentNullException: Value cannot be null. Parameter name: key]
System.ThrowHelper.ThrowArgumentNullException(ExceptionArgument argument) 44
System.Collections.Generic.Dictionary'2.Insert(TKey key, TValue value, Boolean add) 40
System.Collections.Generic.Dictionary'2.Add(TKey key, TValue value) 13
Neden olur .NET çerçeve bir anahtar için null türüne izin ver, ama boş değere izin değil mi?
CEVAP
Olur söyle aynı şey varsa Dictionary<SomeType, string>
, SomeType
olmak başvuru türü ve denedin pas null
olarak anahtar, öyle değil mi bir şey etkileyen sadece null türü gibi bool?
. Anahtar olarak herhangi bir tür kullanmak, null veya değil.
Gerçekten nulls
kıyaslayamazsın gerçeğini aşağı gelir. Sanırım mantık arkasında olamamak koymak null
anahtar, bir özelliği olması tasarlanan göre diğer nesneler olduğunu gösteriyor, tutarsız karşılaştırmak null
referanslar.
Eğer gözlük bir neden istiyorsanız, "anahtar Bir null başvuru" on MSDN. aşağı bir kaynar
Eğer olası bir çözüm bir örnek isterseniz, bir şey Need an IDictionary implementation that will allow a null key benzer deneyebilirsiniz
Geçen anahtar kelime python parametre ...
Neden char[] şifreler için Dize Java t...
Python bir sözlük için anahtar Ekle?...
Nasıl bir dize olarak adını aldığımda ...
Dönüştürme Sözlük için bir Dize?...