1
几乎所有的标题。是否有可能在我没有的类上创建一个强制重载。例如,如果我要为NotifyIcon类(它是封闭的)创建一个包装器,我实际上不能使用它。我不得不返回一个实例,这有点杀死了做装饰者的能力。是否有可能创建一个转载重载的地方,我可以基本上返回NotifyIcon的私有实例?听起来很不自然,但我认为它会达到我想要的。是否有可能重载我不拥有的类的隐式或显式转换运算符?
通常情况下,我会做一些事情,如:
public static implicit operator MyClass(SomeOtherClass input)
{
// do things to come up with a MyClass
}
但是这只能在返回类型为MyClass的。我想做一些简单的事情:
public class MyPsuedoDecoratorClass
{
private NotifyIcon _icon;
public MyPsuedoDecoratorClass(NotifyIcon icon)
{
_icon = icon;
}
// some decorated methods
public static implicit operator NotifyIcon(MyPsuedoDecoratorClass input)
{
return _icon;
}
}
这样我就可以将它用作初始化包装。
一个从()到()型模式将是这更好的。并且不会让你不能在扩展方法中重载操作符:( – RadioSpace 2014-10-28 21:53:16
不,我不认为这个语言可以让你实现你要找的东西,不知道downvotes来自哪里,也许这就是SO-speak for “No” – 2014-10-28 21:53:57
难道你只是施展对象,然后施放对象吗?我可能会误解你的问题,虽然 – 2014-10-28 21:55:58