我有以下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();
}
}
}