可能重复:
C# 4:与可选参数冲突的重载方法
我只是进行了一项小型研究并创建了下一个代码。
namespace Test { class Program { public interface ITestA { void MethodA(int a, int b); } public class TestAClass : ITestA { public void MethodA(int a, int b) { Console.WriteLine("MethodA with param"); } public void MethodA(int a, int b, bool logic = true) { Console.WriteLine("MethodA logic with param"); } } public interface ITestB { void MethodA(int a, int b, bool logic = true); } public class TestBClass : ITestB { public void MethodA(int a, int b) { Console.WriteLine("MethodB with param"); } public void MethodA(int a, int b, bool logic = true) { Console.WriteLine("MethodB logic with param"); } } static void Main(string[] args) { var testA = new TestAClass(); testA.MethodA(1, 1); var testB = new TestBClass(); testB.MethodA(1, 1); } } }
我有一个问题,为什么编译器总是选择带有 2 个参数的短方法。当然,所有这些都以相同的方式工作并且没有接口。
谢谢