c#方法重载-为什么整数方法被首先调用?为什么不加倍呢?

本文关键字:方法 为什么不 调用 重载 为什么 整数 | 更新日期: 2023-09-27 18:06:58

我试图理解关于方法重载的基本事情

如果一个类有如下重载的两个方法:

Add(int a,int b);

Add(double i, double y);

Main方法中如果我像下面这样调用方法:

Add(2, 3);

带有整型参数的方法总是被称为Add(int a,int b)

为什么不调用另一个方法Add(double i, double y) ?由于双类型也可以保存2, 3从主方法调用传递的值。

c#方法重载-为什么整数方法被首先调用?为什么不加倍呢?

因为编译器会调用与您调用的参数更接近的方法。如果你调用add(2,3),两个参数都是整数,它会为你调用add(int, int)。

因为2和3的类型是int,所以具有int参数的重载非常适合。如果你想重载double参数调用,你必须传递双精度或浮点数。