VB.NET使多个具有相同名称但不同参数的子

时间:2012-12-04 12:53:52

标签: vb.net

我想创建多个具有相同名称但具有不同参数的子。

例如:

Public Sub DoThis(Byval CustomerName As String)   
Public Sub DoThis(Byval CustomerID As Integer)
Public Sub DoThis(Byval CustomerID As Integer, ReferenceID As Integer)

然后VB.NET告诉我这样一个子已经存在。 有人可以告诉我怎么做这个吗?

谢谢!

2 个答案:

答案 0 :(得分:6)

你向我们展示的绝对有效 - VB不会抱怨这一点。

这称为重载,它是.NET的基本功能。但是,为了实现这一点,您需要确保所有重载的签名(即参数类型列表)严格不同

以下是展示不同参数类型列表重要性的示例:

Sub DoThis(CustomerName As String) …
Sub DoThis(ProductName As String) …

潜艇看起来与众不同。但VB应如何处理以下调用?

DoThis("Meyer")

无法知道“Meyer”是客户名称还是产品名称(事实上,它可能也是!) - 所以VB禁止这些声明。但是,以下是绝对正确的,因为明确:

Sub DoThis(Customer As Customer)
Sub DoThis(Product As Product)
DoThis(New Customer("Meyer"))

答案 1 :(得分:1)

我做VB .NET已经有一段时间了,但我认为你需要添加Overloads关键字,所以它会变成:

Public Overloads Sub DoThis(Byval CustomerName As String)   
Public Overloads Sub DoThis(Byval CustomerID As Integer)
Public Overloads Sub DoThis(Byval CustomerID As Integer, ReferenceID As Integer)