这可能是一个愚蠢的问题 - 但为什么共享方法可用于VB.net中的类型和实例 - 我错误地认为它们等同于C#静态方法?
即
MyClass.MySharedMethod() dim mc as new MyClass() mc.MySharedMethod()
为什么我被允许这样做?这有什么可能的优势 - 我所能看到的就是在使用intellisense时让人困惑.我确信这与经典VB6中的一些约定有关,为什么还要把它带到.NET上 - 它对我来说似乎太过分了.
是的,它基本上是VB6的宿醉.Java也允许你这样做,但是大多数IDE都会警告你这些天我相信.
是的,这是一个非常糟糕的主意.最糟糕的例子是Thread.Sleep:
Dim t as new Thread(...) t.Sleep(1000)
哪个线程正在睡觉?目前的一个.卫生署!