调用两个方法重载方法的条件

本文关键字:方法 重载 条件 两个 调用 | 更新日期: 2023-09-27 18:36:24

我已经在 C# 规范规则中看到在调用中使用了重载方法,但我似乎找不到任何关于方法实际上需要满足哪些条件才能成为重载方法。

这是我的镜头。如果您发现任何问题,请告诉我:

这不考虑访问修饰符或泛型(我仍然是一个在 C# 书中工作的菜鸟)

考虑两种方法

  • 确保两种方法都具有正确的形式参数列表
  • 将可选参数视为必填参数
  • 将参数视为一个强制参数,其类型是参数数组的类型
  • 我们有两个强制性参数列表
  • (P1、P2、
  • P3、P4)和(Q1、Q2、Q3、Q4)
  • P1 和 Q1, P2 和 Q2, ...是参数对
  • 要成为重载方法,两者必须具有相同的名称但不同的参数列表

其中之一必须是假的

  • 相同数量的参数
  • 每个参数对必须具有相同的类型
  • 每个参数对都必须具有参数修饰符,或者两者都没有参数修饰符。

示例:method(ref int a) 和 method(out int a) 不是重载方法

  • 两个 1 参数
  • 两者都是 int
  • 两者都有一个参数修饰符

调用两个方法重载方法的条件

通常,"方法重载"是指具有相同名称(包括 +/- 运算符)但具有不同参数的方法。

术语"重载"在 C# 语言中没有严格定义为任何特定的含义(与"方法签名"不同)。定义的关闭位置可能是 C# 4.0 规范的"3.6 签名和重载"部分:

签名是重类、结构和接口中成员的启用机制:

    方法重载允许类、结构或接口
  • 声明多个同名方法,前提是它们的签名在该类、结构或接口中是唯一的。

  • 实例构造
  • 函数的重载允许类或结构声明多个实例构造函数,前提是它们的签名在该类或结构中是唯一的。

  • 索引
  • 器的重载允许类、结构或接口声明多个索引器,前提是它们的签名在该类、结构或接口中是唯一的。

  • 运算符
  • 重载允许类或结构声明多个具有相同名称的运算符,前提是它们的签名在该类或结构中是唯一的。