【发布时间】:2015-11-27 16:54:45
【问题描述】:
我一直在研究我的项目,无意中编写了两个具有相同签名的方法,除了可选参数。令我惊讶的是,代码编译正常。
public async Task<List<CategoryApiModel>> GetCategoriesAsync( int contentLanguageId = 0 )
{
...
}
public async Task<List<CategoryApiModel>> GetCategoriesAsync( string languageTag = "" )
{
...
}
我知道,当使用空参数调用时,这会导致调用不明确,但我很惊讶这甚至被允许作为声明本身。谁能解释一下,为什么会这样?
【问题讨论】:
-
你测试的时候发生了什么?
-
查看我的答案以获得解决方法......虽然我不推荐它,因为它有点代码味道
标签: c# overloading optional-parameters