gpt4 book ai didi

c# - 优先级默认值或其他功能? (过载)

转载 作者:行者123 更新时间:2023-11-30 22:27:50 25 4
gpt4 key购买 nike

为什么返回 5,我很好奇这个普通函数比默认参数 one 有更高的优先级。有人可以向我解释一下吗?提前致谢

static void Main(string[] args)
{
Console.WriteLine(add());

Console.ReadLine();
}



public static int add(int x=4,int y=5)
{
return x+y;
}

public static int add()
{

return 5;

}

最佳答案

我认为这只能通过查看 C# 语言规范来回答。第 7.5.3.2 节说,在确定“更好”的函数成员时,如果不需要可选参数,则将它们丢弃:

Optional parameters with no corresponding arguments are removed from the parameter list

这有效地使两个函数等效。当两个函数等效时,它有以下决胜规则:

Otherwise if all parameters of MP have a corresponding argument whereas default arguments need to be substituted for at least one optional parameter in MQ then MP is better than MQ.

这意味着没有默认参数的那个将被调用 - 就像您在代码中看到的那样。

关于c# - 优先级默认值或其他功能? (过载),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11108246/

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