什么被认为是C#中的VB.NET模块?

Xai*_*oft 18 c# vb.net

VB.NET有类和模块,所以我的第一个问题是有什么区别?另外,我注意到C#没有模块,只是类,是否有代替模块的东西或是否为C#删除了它们?

squ*_*man 31

关于VB模块最接近的是C#中的静态类.

例如:

在VB.NET中

Module SomeModule
    Public Sub DoSomething
        MsgBox("Doing something!")
    End Sub
End Module
Run Code Online (Sandbox Code Playgroud)

在C#中也是如此:

public static class DoSomethingFuncs
{
    public static void DoSomething() {
        MessageBox.Show("Doing something!");
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 是的,VB.Net中的模块等于C#中的静态类,它也有相同的限制(例如它不能继承,总是只有一个实例,所有成员都是共享的). (5认同)
  • @Aidiakapi Jared在[对此答案发表评论]中说("http://stackoverflow.com/questions/881570/classes-vs-modules-in-vb-net/881586#881586)"模块与静态不完全相同C#中的类.如果模块中的方法位于导入的命名空间中,则它们实际上是全局的." 例如,在上面的VB代码中,您可以在任何类中编写`DoSomething`,但在C#中,它必须使用类名称DoSomethingFuncs.DoSomething进行限定. (5认同)