如果参数为null,如何解决歧义?

Pom*_*oma 25 c# null ambiguous-call

编译以下代码将返回The call is ambiguous between the following methods or properties错误.如何解决它,因为我无法显式转换null为任何这些类?

static void Main(string[] args)
{
    Func(null);
}

void Func(Class1 a)
{

}

void Func(Class2 b)
{

}
Run Code Online (Sandbox Code Playgroud)

Dis*_*ile 12

您还可以使用变量:

Class1 x = null;
Func(x);
Run Code Online (Sandbox Code Playgroud)

  • +1此方法比func((Class1)null)更容易阅读和理解.转换null不直观. (2认同)

Pie*_*kel 11

投射null到类型:

Func((Class1)null);
Run Code Online (Sandbox Code Playgroud)


Sha*_*rly 9

使用as的铸造使它稍微具有相同功能的可读性.

Func(null as Class1);
Run Code Online (Sandbox Code Playgroud)