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