微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C# 静态类和 VB.NET 模块之间有什么区别如果有的话

如何解决C# 静态类和 VB.NET 模块之间有什么区别如果有的话

C# 支持类定义上使用 static 修饰符来定义一个不能被继承、被密封并且只有静态成员的类。 VB.NET 支持 Module 语句来定义通过其命名空间可用的引用类型,以达到类似的效果

我知道 C# 和 VB.NET 共享一个共同的 CodeDOM、Roslyn 编译器和目标 IL。我的问题是静态类与模块之间有什么区别(如果有的话)。

解决方法

就我而言,只有两个真正的区别在于模块不能被继承,也没有构造函数。

除此之外,模块非常类似于不可继承的类,其中该类只包含共享(vb.net 相当于静态)成员。

例如以下模块:

Public Module Test

    Public Function Foo() As String
        Return "Foo"
    End Function

End Module

可以类似地表示为:

Public NotInheritable Class Test

    Public Shared Function Foo() As String
        Return "Foo"
    End Function

End Class

C# 开发人员可能更喜欢后者,而传统的 Visual Basic 开发人员会选择前者。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。