我有两个重载方法,如下所示
public class TestClass { public void LoadTest(object param) { Console.WriteLine("Loading object..."); } public void LoadTest(string param) { Console.WriteLine("Loading string..."); } }
在调用此方法之后,它将显示输出为加载字符串…请解释.net如何处理此方案?
class Program { static void Main(string[] args) { var obj=new TestClass(); obj.LoadTest(null); // obj.LoadType(null); Console.ReadLine(); } }
解决方法
C#编译器可以获得最具体的重载.
由于string是一个对象,并且它的值可以为null,因此编译器认为字符串更具体.