私はこのクラスとインターフェースを持っています:
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
するためにキャストする必要がありますが、if-elseif-elseステートメントを使用してifthenキャストのようにチェックしたくありません...IXAttribute
XAttribute<string>
XAttribute<int>
XContainerl.Attributes[0] is XAttribute<string>
ここにそれを行うためのより良い方法がありますか?