【发布时间】:2011-07-20 23:03:15
【问题描述】:
我会在 Google/MSDN 上查找它,但我不知道它叫什么,所以我在这里问。
在 Java 中,我似乎记得你可以做这样很酷的事情:
Class MyClass
{
int number;
MyClass() { }
void setNumber(int number)
{
this.number = number;
}
}
然后执行以下操作:
MyClass myClass = new MyClass()
{
override void setNumber(int Number)
{
this.number = 2 * number;
}
};
...什么的。请原谅我在上面犯的任何错误——我已经有大约 6 年没有真正接触过 Java 了。
重点是,我记得你可以内联伪扩展类。
现在,我需要扩展一个 C# WinForms 控件,但我只需要使用一次,并且修改非常小。我需要做的就是覆盖CreateParams 属性和OnPaint() 处理程序。
我的解决方案已经变得庞大,到处都是类,包含另一个与标准 .Net 控件基本相同的类似乎很可惜,只是行为略有不同。
是否可以像在 Java 中一样在 C# 中执行此内联扩展?如果是这样,怎么做? (它叫什么,所以我可以在 MSDN 上查找它?)
【问题讨论】:
标签: c# overriding inline