Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 为什么主方法有';重载';在VB中?_Vb.net_Keyword_Main - Fatal编程技术网

Vb.net 为什么主方法有';重载';在VB中?

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#中,可以有多个名称相同的方法,只要它们具有不同的签名。这

来自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程序员都会认为这是语言中的一个错误。我不能不同意。

那么“共享子系统”就足够了?那么“共享子系统”就足够了?