我想有這種設計的:類具有相同的接口,但不同類型的屬性
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);
問題是,值的類型是每個實施不同的,什麼是應對的最佳途徑?
接口無法指定字段;它將需要一個屬性 – Servy 2013-04-05 14:43:11
不幸的是,你還必須在代碼中指定封閉的泛型類型,所以你不能概括一個字符串和一個int之間的接口 - 而不是沒有另一個接口可能暴露'對象'價值。 – 2013-04-05 14:44:37
但是我們必須在設計時知道需要返回哪種類型? – ibiza 2013-04-05 14:44:49