次のシナリオがあります。
public interface IParam
{
Object Value {get;set;}
}
public abstract class BaseClass: IParam
{
public virtual object Value {get;set;}
}
public class IntSubClass:BaseClass
{
public override object Value {get;set;}
}
外部には、このインターフェイスが公開されています。すべてのプロパティは、IParam を介してアクセスされます。このアプローチの欠点は、キャスティングの問題が多いことです。
IParam dummy = ParameterList[abc];
int index = (int)dummy.Value;
ジェネリックを使用してこの問題を解決する方法を教えてください。外部には、ジェネリック インターフェイスしか公開できません。