gpt4 book ai didi

c# - C# 中不明确的函数/构造函数调用

转载 作者:太空狗 更新时间:2023-10-29 19:50:32 25 4
gpt4 key购买 nike

以下代码会导致编译器错误,因为它是模棱两可的调用,但如果我们使用 object 而不是 ArrayList 则不会发生错误,并且 string 版本工作正常;你对此有什么解释吗?

class A
{
public A(string x)
{
Console.WriteLine("string");
}
public A(ArrayList x)
{
Console.WriteLine("ArrayList");
}

}
static void Main(string[] args)
{
A o = new A(null);
}

最佳答案

如果您将采用 ArrayList 的构造函数更改为采用 object ,那么您的代码工作正常的原因是 C# 编译器将选择最具体的适用类型。在 string/object 的情况下,string 实际上 derives 来自 object 并且是因此“更具体”并将由编译器推断。对于 stringArrayList,它是苹果和橘子:任何一个都可以为空,但没有一个比另一个更“具体”。

关于c# - C# 中不明确的函数/构造函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2865415/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com