使用Object和String返回String将Null值传递给构造函数。为什么?

时间:2016-03-17 08:13:17

标签: c# .net oop

我有以下C#代码,其中我正在尝试使用null作为其值来调用构造函数。

现在,我有2个参数化构造函数,一个使用参数类型对象,另一个使用字符串。现在,当我运行此代码时,我得到 String 作为输出。我无法理解的是,我应该将 Object 作为基类对象的输出。为什么会发生这种情况?

另外,如果我像这样创建第三个构造函数:

public Program(int? c)
        {
            int? c1 = c;
            Console.WriteLine("Nullable int");
        }

为什么我收到编译时错误:Error 1 The call is ambiguous between the following methods or properties: 'ConsoleTest.Program.Program(string)' and 'ConsoleTest.Program.Program(int?)' D:\VisualStudio2013\Projects\ConsoleTest\ConsoleTest\Program.cs 30 26 ConsoleTest

我的C#控制台应用

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleTest
{
    class Program
    {
        public Program(object a)
        {
            object a1 = a;
            Console.WriteLine("Object");
        }
        public Program(string b)
        {
            string b1 = b;
            Console.WriteLine("String");
        }

        static void Main(string[] args)
        {

            Program pr = new Program(null);

            Console.ReadLine();
        }
    }
}

0 个答案:

没有答案