Vb.net 为什么主方法有';重载';在VB中?
来自C# 我在看这个网站 注意到它说Vb.net 为什么主方法有';重载';在VB中?,vb.net,keyword,main,Vb.net,Keyword,Main,来自C# 我在看这个网站 注意到它说 public static void Main(string[] args) { 相当于 Overloads Shared Sub Main(ByVal args() As String) 所以。。。“重载”到底是关于什么的?在VB6中,就像在大多数“古老”的编程语言中一样,有一句格言“只能有一个!”(参见电影“Highlander”)。模块或类中只能有一个同名函数或子函数。在VB.NET和C#中,可以有多个名称相同的方法,只要它们具有不同的签名。这
public static void Main(string[] args) {
相当于
Overloads Shared Sub Main(ByVal args() As String)
所以。。。“重载”到底是关于什么的?在VB6中,就像在大多数“古老”的编程语言中一样,有一句格言“只能有一个!”(参见电影“Highlander”)。模块或类中只能有一个同名函数或子函数。在VB.NET和C#中,可以有多个名称相同的方法,只要它们具有不同的签名。这意味着它们需要有不同数量的参数或不同类型的参数。这些函数被称为重载函数。在VB中,您可以将可选关键字重载
添加到此类函数或子函数中
Public Sub Test(s As String)
Public Sub Test(i As Integer)
Public Sub Test(s As String, i As Integer)
这样就可以了。然而
Public Sub Test(t As String)
不会,因为已经存在具有一个字符串参数的重载方法。不同的参数名称是不够的。在VB6中,就像在大多数“古老”的编程语言中一样,有一句格言“只能有一个!”(参见电影“Highlander”)。模块或类中只能有一个同名函数或子函数。在VB.NET和C#中,可以有多个名称相同的方法,只要它们具有不同的签名。这意味着它们需要有不同数量的参数或不同类型的参数。这些函数被称为重载函数。在VB中,您可以将可选关键字重载
添加到此类函数或子函数中
Public Sub Test(s As String)
Public Sub Test(i As Integer)
Public Sub Test(s As String, i As Integer)
这样就可以了。然而
Public Sub Test(t As String)
不会,因为已经存在具有一个字符串参数的重载方法。不同的参数名称是不够的。因为有一个标准的共享Sub-Main,您正在重载它。您可以对重载进行操作。因为有一个标准的共享Sub-Main,您正在重载它。您可以对重载进行操作。因为标准Sub-Main没有参数,您使用的是带有参数的新主过程。因为标准Sub-Main没有参数,您使用的是带有参数的新主过程。这是一个错误,没有任何内容被重载。任何地方都没有预烘焙Sub Main(),尤其是在名为HelloWorld的类中。因为vb.net编译器对它不是很挑剔,所以它正好可以工作。将此代码粘贴到类中,以便自己查看:
Class Test
Overloads Sub IdontOverloadAnything()
End Sub
End Class
VB.NET编译器倾向于让神奇发生。这不是那种情况,Main()的魔力在于CLR。大多数C程序员都会认为这是语言中的一个错误。我不能不同意。这是一个错误,没有什么东西超载了。任何地方都没有预烘焙Sub Main(),尤其是在名为HelloWorld的类中。因为vb.net编译器对它不是很挑剔,所以它正好可以工作。将此代码粘贴到类中,以便自己查看:
Class Test
Overloads Sub IdontOverloadAnything()
End Sub
End Class
VB.NET编译器倾向于让神奇发生。这不是那种情况,Main()的魔力在于CLR。大多数C程序员都会认为这是语言中的一个错误。我不能不同意。那么“共享子系统”就足够了?那么“共享子系统”就足够了?