apa*_*cay 4 c# compiler-construction
这来自另一个问题:( 如何使用未指定数量的参数来构建一个方法C#).但由于这是一个不同的问题,我不得不在这里问
假设您有一个方法重载(编译器允许此重载):
private static string AddURISlash(params string[] remotePaths) //multiple strings
private static string AddURISlash(string remotePaths) //single string
Run Code Online (Sandbox Code Playgroud)
当只收到一个参数时,您应该如何知道将执行哪些操作?
有会议吗?或者你需要测试一次的东西?我是否必须假设,因为要执行单个字符串方法的唯一方法是接收单个字符串,那就是明确执行的字符串?
谢谢
当只收到一个参数时,您应该如何知道将执行哪些操作?
您阅读了规范,该规范解释了如何处理重载决策.从7.5.3.2节开始,相关的要点是:
否则,如果M P是适用在其正常形式和M Q具有参数数组和仅在其膨胀形式是适用的,则M P大于M更好Q.
因此,该版本并不需要参数阵列扩展(您的单一字符串版本)选择在编译时间,而不是参数数组版本.