Double[]
매개 변수로 생성자가 실행되는 이유를 이해할 수 없습니까?NULL을 생성자에 전달하십시오.
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace MyConsoleApp
{
class Program
{
static void Main(string[] args)
{
D myD = new D(null);
Console.ReadLine();
}
}
public class D
{
public D(object o)
{
Console.WriteLine("Object");
}
public D(double[] array)
{
Console.WriteLine("Array");
}
public D(int i)
{
Console.WriteLine("Int");
}
}
}
첫 번째 생성자가 참조 유형의 매개 변수를 사용하기 때문에 생각합니다. null
이 참조 유형의 기본값이므로 참조 매개 변수가있는 첫 번째 생성자입니다.
그러나 나는 왜 object
이 아니라는 것을 이해하지 못합니다. 참조 유형이기도합니다.
여기에 문제가 있습니다. 오버로드를 사용하려는 경우 객체로 일반적인 유형을 포함하면 어떤 점에서 고통이 발생합니다 –
@DavidHeffernan IDK.대부분의 경우에 어떤 메소드가 호출되는지는 다소 직관적이라고 생각합니다. 객체는 호출 할 수없는 경우에만 호출됩니다. 직관적으로 이것은 반대로 말도 안되기 때문에 의미가 있습니다. – Cruncher
이것은 훌륭한 인터뷰 질문입니다! :) –