私はこのようなデザインをしたいと思います:
public interface IDifferentTypes
{
}
public class IntegerType : IDifferentTypes
{
public int value { get; set; }
}
public class StringType : IDifferentTypes
{
public string value { get; set; }
}
public class DateTimeType : IDifferentTypes
{
public DateTime value { get; set; }
}
ただし、インターフェイスでプロパティ「値」が定義されています。
だから私はそのようなものを呼び出すことができます:
IDifferentTypes someInt = GetSomeInt(); // GetSomeInt() returns a IntegerType object
Assert.AreEqual(5, someInt.value);
IDifferentTypes someString = GetSomeString(); // GetSomeString() returns a StringType object
Assert.AreEqual("ok", someString.value);
問題は、実装ごとに値の型が異なることです。これに対処する最善の方法は何ですか?