2

私はこのようなデザインをしたいと思います:

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);

問題は、実装ごとに値の型が異なることです。これに対処する最善の方法は何ですか?

4

3 に答える 3