Overloads (Visual Basic)

指定属性或过程使用相同的名称重新声明一个或多个现有的属性或过程。

备注

“重载”是在同一范围内为某个给定属性或过程名称提供多个定义的做法。 用不同的签名重新声明属性或过程有时称为“按签名隐藏”。

规则

  • **声明上下文。**只能在属性和过程声明语句中使用 Overloads。

  • **组合修饰符。**不能在同一过程声明中将 Overloads 与 Shadows (Visual Basic) 同时指定。

  • **必需的不同点。**在该声明中,签名必须与它重载的每个属性或过程的签名不同。 签名包含属性或过程名以及以下内容:

    • 参数的数量

    • 参数顺序

    • 参数的数据类型

    • 类型参数的数量(针对泛型过程)

    • 返回类型(仅针对转换运算符过程)

    所有重载都必须有相同的名称,但每个重载必须在上面的一个或多个方面与所有其他重载不同。 这使编译器在代码调用属性或过程时可以区分要使用哪个版本。

  • **不允许的不同点。**对于重载属性或过程而言,更改下面的一项或多项无效,因为它们不是签名的一部分:

    • 它是否返回值(针对过程)

    • 返回值的数据类型(除转换运算符之外)

    • 参数或类型参数的名称

    • 对类型参数的约束(针对泛型过程)

    • 参数修饰符关键字(如 ByRef 或 Optional)

    • 属性或过程修饰符关键字(如 Public 或 Shared)

  • **可选修饰符。**当在同一个类中定义多个重载属性或过程时,不必使用 Overloads 修饰符。 然而,如果在某个声明中使用 Overloads,则必须在所有的声明中使用它。

  • 隐藏和重载。 Overloads 也可用于隐藏基类中的现有成员或一组重载成员。 以这种方式使用 Overloads 时,应用与基类成员相同的名称和参数列表来声明属性或方法,并且不提供 Shadows 关键字。

Overloads 修饰符可用于下面的上下文中:

Function 语句

Operator 语句

Property 语句

Sub 语句

请参见

任务

如何:定义转换运算符 (Visual Basic)

参考

Shadows (Visual Basic)

概念

过程重载 (Visual Basic)

Visual Basic 中的泛型类型 (Visual Basic)

运算符过程 (Visual Basic)