我有两种方法,如下所示。一个没有参数,一个只有可选参数。
GetNext();
现在,当调用GetNext而没有参数
时,将调用哪个方法 ...
keyboardControl: true,
onSlideNextStart: function(){
if ((mySwiper.isEnd == true) && (mySwiper.activeIndex < <?php echo $totalCount; ?>)) {
mySwiper.appendSlide('***return HTML here from post***');
}
}
为什么?
仅供参考:有人在接受采访时提到过这个问题。
答案 0 :(得分:2)
调用没有可选参数(GetNext()
)的方法。回答为什么可以在MSDN中找到:
如果两名候选人被判断为同样好,则优先选择a 候选者没有可选参数的参数 在通话中被省略了。这是一般的结果 对于拥有较少的候选人,重载决议的偏好 参数。
答案 1 :(得分:0)
void将调用GetNext(),在这种情况下隐藏带有可选参数的方法。 但是如果你调用GetNext(1),将调用GetNext(int currentindex = 0)。
答案 2 :(得分:0)
没有参数方法GetNext()
将被称为
void GetNext(){
//implimentation
}
因为首选项是调用without参数方法而不是可选参数重载方法
重载决议
如果方法,索引器或构造函数的每个参数都是可选的,或者按名称或位置对应于调用语句中的单个参数,则该方法,索引器或构造函数是执行的候选者,并且该参数可以转换到参数的类型。
如果找到多个候选项,则首选转换的重载解析规则将应用于显式指定的参数。忽略可选参数的省略参数。
如果两个候选人被判断为同样好,则优先选择没有可选参数的候选人,其中参数在呼叫中被省略。这是对具有较少参数的候选者的重载分辨率的一般偏好的结果。