【发布时间】:2020-12-18 17:35:02
【问题描述】:
您能告诉我为什么在下面的代码中使用 OVERLOADS 关键字时会出现错误吗?我得到的错误如下:
Module Module1
Sub Main()
Dim name As String = "Sougata"
Dim age As Integer = 36
Console.WriteLine("Name before Age: {0} ", test(name, age))
Console.WriteLine("Age before Name: {0}", test(age, name))
Console.ReadLine()
End Sub
Overloads Function test(ByVal name As String, ByVal age As Integer) As Integer
Return 1
End Function
Overloads Function test(ByVal a As Integer, ByVal n As String) As Integer
Return 2
End Function
End Module
【问题讨论】:
-
因为你在一个模块中。尝试删除 Overloads 关键字。
-
您要在哪里重载什么函数?你的目标是什么?由于您的模块没有从任何东西继承,它不能重载任何东西。如果你只是想为你的测试函数创建两个签名,你可以简单地用不同的参数类型声明它们,你就完成了。
-
@LarsTech ....如果您点击链接 (docs.microsoft.com/en-us/dotnet/visual-basic/language-reference/…),您将看到声明上下文定义为 >>>“您只能在属性或过程声明语句中使用重载."。没有提到它不能在模块内声明。因此尝试了同样的方法。现在,这是否意味着只有当我在类中重载一个过程时,我才能使用 OVERLOADS 关键字?如果不是,那么使用它时要遵循什么规则?请帮忙。
-
还可以查看有关此关键字用法的一些非常好的解释。在绝大多数情况下,关键字是可选的。有一些边缘情况是必要的。如果您只是在学习,我建议您不要尝试使用此关键字,而是专注于学习独立于关键字的重载概念。 stackoverflow.com/questions/4038032/…
标签: vb.net