VB.NET使多个SUB具有相同的名称但参数不同
我想使多个子相同的名称,但不同的参数 例如:VB.NET使多个SUB具有相同的名称但参数不同,vb.net,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告诉我这样的子系统已经存在了。 谁能告诉我怎么做 谢谢大家! 您向我们展示的内容绝对有效–VB不会
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告诉我这样的子系统已经存在了。
谁能告诉我怎么做
谢谢大家! 您向我们展示的内容绝对有效–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)
我已经有一段时间没有使用VB.NET了,但我认为您需要添加重载关键字,因此它将变成:
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)
只要签名是唯一的,这就应该有效。在此上下文中,您不需要使用
重载
关键字。您可以添加它。只有在区分重载和重写时才需要它(即使没有重载
也只会在我没有记错的情况下发出警告)。非常感谢。不确定VB.NET中发生了什么以及它为什么抱怨。我开始了一个新的项目,而且很有效。非常感谢你!
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)