问题标签 [sealed]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - C# 密封类与无公共构造函数
我目前正在尝试更深入地了解 .NET 框架。当我想知道是否可以创建两个 CommandManager 时遇到了一个错误:
显然它的意思是:不要这样做,拥有两个可能甚至没有意义。现在我在消息之前遇到了另一个错误:
禁止的效果是一样的,但有什么区别。为什么选择一个没有公共构造函数的类而不是使其密封?
编辑:
对不起,我病了几天。此外,我混合了两种语言:VB 和 C#。我打开了两个选项卡,但忽略了一个在 C# 上,一个在 VB 代码上。一类被密封,另一类似乎是不可继承的。我没有意识到这实际上是一样的。现在错误消息是有道理的。
IronPython 代码片段:
失败了
尽管
失败:
我被这些错误消息误导了,因为我的 google 和 stackoverflow 搜索没有返回任何答案(自然是因为 CommandManager 总是在 C# 中密封,而在 VB 中总是 NonInheritable)进一步的 CommandManager 似乎是密封的并且没有公共构造函数。
python - Python 相当于 .Net 的密封类
python有什么类似于密封类的东西吗?我相信它在 java 中也被称为 final 类。
换句话说,在python中,我们可以标记一个类,使其永远不能被继承或扩展吗?python有没有考虑过有这样的功能?为什么?
免责声明
实际上试图理解为什么密封类甚至存在。在这里回答(以及在许多、许多、许多、许多、许多、很多其他地方)根本不能满足我,所以我试图从不同的角度来看。请避免对这个问题的理论答案,并专注于标题!或者,如果你坚持,至少请给出一个非常好的和实用的 csharp 密封类的例子,指出如果它被解封会破坏什么。
我不是这两种语言的专家,但我对这两种语言都有一点了解。就在昨天在 csharp 上编码时,我知道了密封类的存在。现在我想知道python是否有与此等价的东西。我相信它的存在是有充分理由的,但我真的不明白。
c# - 具有私有构造函数的类和具有私有构造函数的密封类有什么区别?
A和B有区别吗?
A 类有私有构造函数:
B 类是密封的并且有一个私有构造函数:
c# - 如何解决从密封类不可能继承的问题?
今天我在 WPF 工作。
我试图从System.Windows.Shapes.Line
类继承,像这样:
我刚刚意识到, Line 类是密封的。
我的目标是创建一个类,它将像Line
类一样工作(把它放在上面Canvas
),但我不想每次都给它添加画笔而弄乱我的代码,可以说总是想要 2px 宽度的黑色画笔/描边。
我觉得我试图做错了。
我该怎么做?
c# - 将方法添加到 dll 类
这是我的问题:
我有一个包含一些数学函数的 dll,代码看起来是这样的:
问题是它只操纵双变量,我需要能够操纵各种数字(UInt32,UInt64,字节......)
我应该写另一门课吗?并使其成为通用类?
该类由dll(另一个类)中的某些方法调用
- 我无权访问 dll 的代码
如果问题不够清楚,我很抱歉,但如果您需要进一步说明,请询问
任何帮助都可能有用
我在论坛上搜索并没有找到对我有帮助的东西,但是如果您认为问题已经得到解答,请给我链接
非常感谢你
scala - 如何以一种很好的方式定义密封抽象类的成员?
我想知道是否有更好的方法来做到这一点:
id
我的问题是,除了这里代表的班级之外,我还有很多成员Edge
。我必须override val
在抽象类中定义的每个成员之前编写它,这使得它非常麻烦,并且认为应该有一些更好的方法来做到这一点。
提前致谢!
java - 是否可以在 jar 文件中密封类?
所以我知道可以通过将sealed 属性设置为true 来密封jar 文件中的包,但是是否可以对清单中的类条目执行相同的操作?
如果 Boot.class 存在或仅用于包的密封,下面的这个密封属性会起作用吗?
例子:
c# - 为什么 StringBuilder 类是密封的?
我想知道这一点,因为我需要继承StringBuilder
来实现一个TextChanged
事件。我总是可以制作一个包含 aprivate StringBuilder
和隐式/显式转换的包装器,但这似乎不是一个合适的解决方案。
幸运的是,我可以从写入 StringBuilder 的对象继承,所以这对我来说不是问题,但我仍然很好奇为什么该类是密封的。
c# - 除非您打算明确继承它们,否则最好将所有类标记为密封?
似乎通过将类标记为密封可以获得一些真正的好处:
- 某些情况下的表现
- 其他特殊情况下的编译时类型安全密封类的显式转换失败
- 防止意外继承您的类
缺点似乎相对较少......您可以在不破坏代码的情况下解封一个类,但您不能在以后密封一个在不破坏代码的情况下解封的类。
除非您打算继承它,否则始终将类标记为密封是最佳做法吗?为什么或者为什么不?
关于这个主题的任何其他意见或指导?