问题标签 [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.

0 投票
5 回答
9102 浏览

c# - C# 密封类与无公共构造函数

我目前正在尝试更深入地了解 .NET 框架。当我想知道是否可以创建两个 CommandManager 时遇到了一个错误:

显然它的意思是:不要这样做,拥有两个可能甚至没有意义。现在我在消息之前遇到了另一个错误:

禁止的效果是一样的,但有什么区别。为什么选择一个没有公共构造函数的类而不是使其密封?

编辑:

对不起,我病了几天。此外,我混合了两种语言:VB 和 C#。我打开了两个选项卡,但忽略了一个在 C# 上,一个在 VB 代码上。一类被密封,另一类似乎是不可继承的。我没有意识到这实际上是一样的。现在错误消息是有道理的。

IronPython 代码片段:

失败了

尽管

失败:

我被这些错误消息误导了,因为我的 google 和 stackoverflow 搜索没有返回任何答案(自然是因为 CommandManager 总是在 C# 中密封,而在 VB 中总是 NonInheritable)进一步的 CommandManager 似乎是密封的并且没有公共构造函数。

0 投票
4 回答
3956 浏览

python - Python 相当于 .Net 的密封类

python有什么类似于密封类的东西吗?我相信它在 java 中也被称为 final 类。

换句话说,在python中,我们可以标记一个类,使其永远不能被继承或扩展吗?python有没有考虑过有这样的功能?为什么?

免责声明

实际上试图理解为什么密封类甚至存在。在这里回答(以及在许多许多许多许多许多很多其他地方)根本不能满足我,所以我试图从不同的角度来看。请避免对这个问题的理论答案,并专注于标题!或者,如果你坚持,至少请给出一个非常好的和实用的 csharp 密封类的例子,指出如果它被解封会破坏什么。

我不是这两种语言的专家,但我对这两种语言都有一点了解。就在昨天在 csharp 上编码时,我知道了密封类的存在。现在我想知道python是否有与此等价的东西。我相信它的存在是有充分理由的,但我真的不明白。

0 投票
6 回答
18303 浏览

c# - 具有私有构造函数的类和具有私有构造函数的密封类有什么区别?

A和B有区别吗?

A 类有私有构造函数:

B 类是密封的并且有一个私有构造函数:

0 投票
2 回答
1961 浏览

c# - 如何解决从密封类不可能继承的问题?

今天我在 WPF 工作。

我试图从System.Windows.Shapes.Line类继承,像这样:

我刚刚意识到, Line 类是密封的。

我的目标是创建一个类,它将像Line类一样工作(把它放在上面Canvas),但我不想每次都给它添加画笔而弄乱我的代码,可以说总是想要 2px 宽度的黑色画笔/描边。

我觉得我试图做错了。

我该怎么做?

0 投票
1 回答
2499 浏览

c# - 将方法添加到 dll 类

这是我的问题:

我有一个包含一些数学函数的 dll,代码看起来是这样的:

问题是它只操纵双变量,我需要能够操纵各种数字(UInt32,UInt64,字节......)

我应该写另一门课吗?并使其成为通用类?

该类由dll(另一个类)中的某些方法调用

  • 我无权访问 dll 的代码

如果问题不够清楚,我很抱歉,但如果您需要进一步说明,请询问

任何帮助都可能有用

我在论坛上搜索并没有找到对我有帮助的东西,但是如果您认为问题已经得到解答,请给我链接

非常感谢你

0 投票
1 回答
239 浏览

scala - 如何以一种很好的方式定义密封抽象类的成员?

我想知道是否有更好的方法来做到这一点:

id我的问题是,除了这里代表的班级之外,我还有很多成员Edge。我必须override val在抽象类中定义的每个成员之前编写它,这使得它非常麻烦,并且认为应该有一些更好的方法来做到这一点。

提前致谢!

0 投票
1 回答
1661 浏览

java - 是否可以在 jar 文件中密封类?

所以我知道可以通过将sealed 属性设置为true 来密封jar 文件中的包,但是是否可以对清单中的类条目执行相同的操作?

如果 Boot.class 存在或仅用于包的密封,下面的这个密封属性会起作用吗?

例子:

0 投票
2 回答
2440 浏览

c# - 为什么 StringBuilder 类是密封的?

我想知道这一点,因为我需要继承StringBuilder来实现一个TextChanged事件。我总是可以制作一个包含 aprivate StringBuilder和隐式/显式转换的包装器,但这似乎不是一个合适的解决方案。

幸运的是,我可以从写入 StringBuilder 的对象继承,所以这对我来说不是问题,但我仍然很好奇为什么该类是密封的。

0 投票
1 回答
184 浏览

java - 为什么我们可以在 java 中创建从 seal(scala) 派生的新类?

考虑两个类 A 和 B:

编译,运行:

正如文档中所说,“除非继承模板与被继承的类在同一源文件中定义,否则不能直接继承密封类。”

我认为这意味着通过在同一文件中定义的子类进行模式匹配足以涵盖所有情况,但正如我们从这个示例中看到的那样,这不是真的。

这是一个问题:有没有办法编写真正密封的类(如ADTs)或者我需要在每个模式匹配中编写虚拟的最后一个案例以确保代码安全?

0 投票
1 回答
2841 浏览

c# - 除非您打算明确继承它们,否则最好将所有类标记为密封?

似乎通过将类标记为密封可以获得一些真正的好处:

  1. 某些情况下的表现
  2. 其他特殊情况下的编译时类型安全密封类的显式转换失败
  3. 防止意外继承您的类

缺点似乎相对较少......您可以在不破坏代码的情况下解封一个类,但您不能在以后密封一个在不破坏代码的情况下解封的类。

除非您打算继承它,否则始终将类标记为密封是最佳做法吗?为什么或者为什么不?

关于这个主题的任何其他意见或指导?