Joh*_*ank -1 c# constructor class sealed
我目前正在尝试深入了解.NET框架.当我想知道是否可以创建两个CommandManagers时,我遇到了一个错误:
Cannot create an instance of CommandManager because it has no public constructors.
Run Code Online (Sandbox Code Playgroud)
显然这意味着:不要这样做,而且有两个人甚至没有意义.现在我在收到消息之前遇到了另一个错误:
Cannot create an instance of ... because it is sealed
Run Code Online (Sandbox Code Playgroud)
禁止的效果是相同的,但有什么区别.为什么选择一个类没有公共构造函数而不是密封?
编辑:
对不起,我生病了几天.我进一步混合了两种语言:VB和C#.我打开了两个标签,忽略了一个站在C#上,一个站在VB Code上.一个班级被密封,另一个班级似乎是NonInheritable.我没有意识到这实际上是一样的.现在错误消息变得敏感.
IronPython代码片段:
commandManager = CommandManager()
Run Code Online (Sandbox Code Playgroud)
失败了
Cannot create instances of CommandManager because it has no public constructors
Run Code Online (Sandbox Code Playgroud)
而
class MyCommandManager(CommandManager):
return super(MyCommandManager, self).__init__(*args, **kwargs)()
Run Code Online (Sandbox Code Playgroud)
失败了:
cannot derive from System.Windows.Input.CommandManager because it is sealed
Run Code Online (Sandbox Code Playgroud)
我被这些错误消息误导了,因为我的google和stackoverflow搜索没有回答(当然因为CommandManager总是密封在C#中而在VB中始终是NonInheritable)另外CommandManager似乎都是密封的并且没有公共构造函数.