我有一个继承自 DynamicObject 的类并覆盖它的一些成员。我想知道是否有任何我可以使用的技巧使得'this'隐式动态(或者至少是外观),所以当我想在类中动态添加成员时我不必这样做
((dynamic)this).Whatever = 10;
如果能做的话会好得多
Whatever = 10;
我只是在捣乱一些东西,所以我不能为此添加任何真实的上下文,不,Ruby这次不是解决方案;)
我可以将它包装在一个属性中,但它会添加到功能的API中,因为我必须这样做
Property.Whatever = 10;
答案 0 :(得分:4)
为什么不扩展基类?
public class DynamicObjectEx : DynamicObject
{
protected dynamic self
{
get
{
return this;
}
}
}
或者你只需切换到VB.NET,选项严格关闭或任何设置; - )
答案 1 :(得分:1)
这是不可能的。您使用Property.Whatever
的方法是可行的。
答案 2 :(得分:0)
将它们添加为非动态属性会不会更容易?如果你在课堂上使用“this”,你肯定那些属性已经存在,不是吗?
我对动态课程知之甚少,但如果我错了,请纠正我!