【发布时间】:2014-12-10 11:26:15
【问题描述】:
我有一个只包含静态方法的实用程序类。如果我将类标记为静态,这是一个破坏性的二进制更改吗?
我已经比较了两者的 IL,除了默认构造函数的丢失(不应该使用)之外,我可以看到以下差异......
类未标记为静态:
.class public auto ansi beforefieldinit MyNamespace.MyClass
类标记为静态:
.class public auto ansi abstract sealed beforefieldinit MyNamespace.MyClass
我不明白为什么这会是一个重大变化,但是...?
【问题讨论】:
-
如果有人从 MyNamespace.MyClass 继承或直接创建了它的实例,那么它将被破坏
-
@TrevorPilley:我没想到客户会使用函数继承——我只是想通过类名调用普通的静态方法是否会被破坏——但这仍然是一个很好的观点.谢谢。
标签: c# static static-class