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;
}