我有以下几点:如果没有提供可选参数,它不应该使用默认值吗?
void MyMethod(ClassA classa, bool useWhite=true)
{...}
如果我打电话
MyMethod(myclassA);
不应useWhite是真的里面的MyMethod的()?我发现在上述情况下,这是错误的。
我有以下几点:如果没有提供可选参数,它不应该使用默认值吗?
void MyMethod(ClassA classa, bool useWhite=true)
{...}
如果我打电话
MyMethod(myclassA);
不应useWhite是真的里面的MyMethod的()?我发现在上述情况下,这是错误的。
确实,原因可能是您的类实现了一个接口,并且该接口为该参数定义了一个不同的默认值,例如, useWhite = 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"
}
它_is_真实的,所以显示的代码是可再现的。 http://ideone.com/YwsQ64 –
你可以发布一个可编译的例子吗? –
是否有可能你有一个名为'useWhite'的字段被初始化为false? –