我有這樣的類和接口:C#鑄造泛型類型,以正確的類型
public class XContainer
{
public List<IXAttribute> Attributes { get; set; }
}
public interface IXAttribute
{
string Name { get; set; }
}
public interface IXAttribute<T> : IXAttribute
{
T Value { get; set; }
}
public class XAttribute<T> : IXAttribute<T>
{
public T Value { get; set; }
}
我需要遍歷XContainer.Attributes
並獲得財產Value
但我需要投IXAttribute
糾正像XAttribute<string>
或XAttribute<int>
但我通用表示不想使用if-else if-else語句來檢查它是否就像XContainerl.Attributes[0] is XAttribute<string>
然後投射...
這裏是更好的方法嗎?
謝謝你的回答。你建議更好的設計? – Simon
也許泛型不適合這個。但是我們必須看到更多的實際代碼。 –