我有以下内容:
void MyMethod(ClassA classa, bool useWhite=true)
{...}
如果我打电话
MyMethod(myclassA);
不应该在MyMethod()内部使用白色?我发现在上述情况下,这是错误的。
答案 0 :(得分:2)
实际上,原因可能是您的类实现了一个接口,并且接口为参数定义了一个不同的默认值,例如: useWhite = false
。
以下示例将输出“False”:
public interface I
{
void Test(bool b = false);
}
public class C : I
{
public void Test(bool b = true)
{
Console.WriteLine(b);
}
}
void Main()
{
I i = new C();
i.Test(); // <-- prints "False"
new C().Test(); // <-- prints "True"
}