C# 为什么我们可以在VB中调用没有共享关键字的sub函数
我有两张表格 表格1:C# 为什么我们可以在VB中调用没有共享关键字的sub函数,c#,vb.net,C#,Vb.net,我有两张表格 表格1: Public Class Form1 Public Sub MySub() End Sub End Class 表格2: Public Class Form2 Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load Form1.MySub()//why?? End Sub End Class 为什么我可以用VB编写Form1.MyS
Public Class Form1
Public Sub MySub()
End Sub
End Class
表格2:
Public Class Form2
Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Form1.MySub()//why??
End Sub
End Class
为什么我可以用VB编写Form1.MySub(),但C不VB.Net编译器为某些事情提供了一个解决方案。C#没有
在VB.Net中这样做至少部分是为了与旧的VB6时代代码兼容,而至少部分不是在C中这样做,因为C不允许类型和变量之间的命名冲突。在C中不允许是什么意思?你能举个例子吗?只要它是公共函数,就可以在类外部调用。Form1是类型名,而不是对象引用。VB的默认实例功能是为了帮助程序员迁移到.NET。对于程序员来说,这是一个相当严重的问题,用这种方式学习面向对象编程非常困难。也会导致许多线程问题。OOP是您需要学习的,在C#中没有捷径。@PratikGaikwad:您需要一个实例来调用实例方法-正如Hans提到的,VB创建了一个名为与表单相同的默认表单实例。这是VB最糟糕的“功能”之一——它确实会鼓励人们缺乏理解。@DaveDoknjas,是的,明白了。