让我们看一个示例。在此,调用将转到带有单个参数的方法 -
示例using system;class student { static void displaymarks(int marks1 = 90) { console.writeline("method with one parameter!"); } static void displaymarks(int marks1, int marks2 = 95) { console.writeline("method with two parameters!"); } static void main() { displaymarks(97); }}
现在让我们看看是什么造成了一个模棱两可的调用。这里的混淆在于第二个方法需要两个默认参数,而第一个方法需要一个参数被默认。这就造成了歧义。
示例using system;class student { static void displaymarks(int marks1 = 90, int marks2 = 80) { console.writeline("method with two parameters!"); } static void displaymarks(int marks1, int marks2 = 80, marks3 = 98) { console.writeline("method with three parameters!"); } static void main() { displaymarks(80); }}
以上就是c# 中的重载方法和歧义的详细内容。