我想创建多个具有相同名称但具有不同参数的子。
例如:
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告诉我这样一个子已经存在。 有人可以告诉我怎么做这个吗?
谢谢!
答案 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)