0

我已经完成了以下代码

public Class OverLoading {

public void Get(int val, string str)
{
    Console.Write("Method with int and string parameter");
}
public void Get(int str, object obj)
{
    Console.Write("Method with int and Object parameter");
}

}

当我使用下面提到的代码从 Main() 调用它时,“obj.Get(2, null)”行总是调用重载类的第一个 Get 方法,即 Get(int val, string str)

static void Main()
    {
        OverLoading obj = new OverLoading();
        obj.Get(2, null);
    }

您能否建议,为什么将 null 强制转换为字符串而不是反对。

4

2 回答 2

0

因为 int Java 编程语言中的字符串是对象。因此它们可以设置为空。原始数据类型不能设置为 null。byte short int long float double boolean char

要为它们设置空值,您必须使用相应的包装器

参考: http ://docs.oracle.com/javase/tutorial/java/data/strings.html

于 2013-09-26T09:14:24.660 回答
0

因为StringObject的孩子。在解析重载方法时,编译器总是首先查看子类型参数方法。

于 2016-05-27T04:28:26.090 回答