我有这些类和接口:
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>
orXAttribute<int>
但我不想使用 if-else if-else 语句来检查它,例如 if XContainerl.Attributes[0] is XAttribute<string>
then cast ...
这里有更好的方法吗?