【发布时间】:2021-02-19 19:37:38
【问题描述】:
C# 支持在类定义上使用static 修饰符来定义一个不能被继承、被密封并且只有静态成员的类。 VB.NET 支持Module 语句来定义通过其命名空间可用的引用类型,效果类似。
我知道 C# 和 VB.NET 共享一个共同的 CodeDOM、Roslyn 编译器和目标 IL。我的问题是静态类与模块之间有什么区别(如果有的话)。
【问题讨论】:
-
您可以使用任何 IL 检查工具(如 ILSpy)轻松地为自己找出答案。 VB.NET
Module只不过是一个sealed类,其中static成员标记有StandardModule属性。唯一值得注意的是,该类本身没有标记为static(IL 级别为abstract sealed),尽管这在实践中当然没有什么区别。
标签: c# .net vb.net roslyn codedom