C# 代理上的可选参数不';我不能正常工作
为什么这段代码不能编译C# 代理上的可选参数不';我不能正常工作,c#,delegates,optional-parameters,C#,Delegates,Optional Parameters,为什么这段代码不能编译 delegate int xxx(bool x = true); xxx test = f; int f() { return 4; } 将发生什么情况测试(错误)?它将损坏堆栈,因为签名必须匹配。可选参数用于调用端,而不是有效的单一方法接口实现。例如,这应该编译: 试着这样做: static int f(bool a) { return 4; } 因为可选参数不会更改方法的基础签名,这对委托很重要 如果您不使用可选参数,代码希望它不在方法签名中-这是不
delegate int xxx(bool x = true);
xxx test = f;
int f()
{
return 4;
}
将发生什么情况
测试(错误)
?它将损坏堆栈,因为签名必须匹配。可选参数用于调用端,而不是有效的单一方法接口实现。例如,这应该编译:
试着这样做:
static int f(bool a)
{
return 4;
}
因为可选参数不会更改方法的基础签名,这对委托很重要 如果您不使用可选参数,代码希望它不在方法签名中-这是不正确的
static int f(bool a)
{
return 4;
}