Bu, google! 'A zor bir sorudur!C# "Enum" yöntemi ve "enum" parametresi
"Enum" parametresini parametre olarak alan bir uzantı yöntemim var.
public static T GetEntry<T>(this Dictionary<Enum, string> dictionary, Enum key)
{
string val;
if (dictionary.TryGetValue(key, out val))
{
return (T)Convert.ChangeType(val, typeof(T));
}
return default(T);
}
ama ilan enum ile bunu kullanmaya çalıştığınızda derleyici uzantısı yöntemi
olarak sözlüğü ilan etmek dışında bu işi yapmak nasılDictionary<CmdAttr, String> Attributes;
cmd.CommandText.Attributes.GetEntry<double>(CommandText.CmdAttr.X);
herhangi bir fikir bulamıyorum
Dictionary<Enum, String> Attributes
, bildirilen bir enum'un sahip olduğu noktayı hangi türden yenilgiye uğratır? Ne yapmak istiyoruz olup
Çok teşekkürler
A 'Sözlük Sözlük <' dan devralan gelmez ' Enum, string> 've dolayısıyla uyumlu değil. Bu parametre için jenerik bir tür kullanmanız gerekecek, ancak C# 'de izin verilemediği için, enumlar üzerinde genel bir kısıtlama yapmak için buraya izin verilmeyecektir. –
Yan nota: Anahtar mevcutsa neden iki kez kontrol ediyorsunuz? –
@ LasseV.Karlsen 'struct' üzerinde bir kısıtlama olabilir. Biraz yardımcı olabilir. –