将null值传递给重载方法,其中Object和String为C#中的param

Cod*_*-EZ 6 .net c#

我有两个重载方法,如下所示

 public class TestClass
    {

        public void LoadTest(object param)
        {
            Console.WriteLine("Loading object...");
        }
        public void LoadTest(string param)
        {
            Console.WriteLine("Loading string...");
        }

    }
Run Code Online (Sandbox Code Playgroud)

在调用此方法之后,它将显示输出为加载字符串...请解释.net如何处理此方案?

 class Program
    {
        static void Main(string[] args)
        {       
            var obj=new TestClass();
            obj.LoadTest(null);
           // obj.LoadType(null);
            Console.ReadLine();
        }
    }
Run Code Online (Sandbox Code Playgroud)

It'*_*ie. 5

C# 编译器可能采用最具体的重载。

由于string是一个object,并且它可具有的值null时,编译器认为string是更具体的。