我一直在做我的项目,无意中编写了两个具有相同签名(可选参数除外)的方法。令我惊讶的是,代码编译正常。
public async Task<List<CategoryApiModel>> GetCategoriesAsync( int contentLanguageId = 0 )
{
...
}
public async Task<List<CategoryApiModel>> GetCategoriesAsync( string languageTag = "" )
{
...
}
我知道,当使用空参数调用时,这会导致调用不明确,但令我惊讶的是,这甚至被允许作为声明本身。有人可以解释一下为什么会这样吗?
最佳答案
实际上,您的程序可以正常编译直到至少有一次 GetCategoriesAsync() 调用。然后你会得到“错误CS0121:调用不明确”。
关于c# - 除了可选参数之外,两个方法具有相同的签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33961847/