2
我有一段代碼,如果類存在,我將某個類的某些屬性委託給另一個類。在下面,您會看到TimeProvider上定義的開始時間(如果存在)。使用表達式參數化屬性名稱
public override DateTime StartTime
{
get
{
return (TimeProvider != null) ? TimeProvider.StartTime : base.StartTime;
}
set
{
if (TimeProvider != null)
{
TimeProvider.StartTime = value;
}
else
{
base.StartTime = value;
}
}
}
現在我的「問題」是,我有更多的屬性(比如結束時間,currentime)我委託給TimeProvider,如果它不爲空。因此,我希望有這樣的代碼:
public override DateTime StartTime
{
get
{
return GetTime(()=>StartTime);
}
set
{
SetTime(()=>StartTime)
}
}
凡()=>開始時間表達有時在TimeProvider類本身「評價」和有時(它們共享一個基類)。可以這樣做嗎?最好不使用反射。
什麼是你的最終目標是什麼?通過實現ITimeProvider接口可以實現更輕鬆嗎?你可能可以做一些使用屬性名稱和反射的東西。 – BenCr 2011-05-18 14:14:46
這兩個類已經共享相同的ITimeProvider接口。只有我想寫所有的代表團檢查一次。 – Gluip 2011-05-18 14:16:53
如果您的課程是ITimeProvider,您爲什麼不設置這個.StartTime?你能否提供一些關於你爲什麼要這樣做的背景?我不太明白。 – BenCr 2011-05-18 14:19:21