Ich kann nicht verstehen, warum der Konstruktor mit dem Parameter Double[]
ausgeführt wird?NULL zum Konstruktor übertragen
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");
}
}
}
Ich denke, weil der erste Konstruktor einen Parameter des Referenztyps nimmt. Der erste Konstruktor mit einem Referenzparameter, weil null
der Standardwert für Referenztypen ist.
Aber ich verstehe nicht warum nicht object
, es ist auch ein Referenztyp.
Sie bitten hier um Ärger. Wenn Sie Überladungen verwenden, wird das Einschließen als allgemeiner Typ als Objekt irgendwann zu einem Schmerz führen –
@DavidHeffernan IDK.Meistens denke ich, welche Methode aufgerufen wird, ist eher intuitiv. Das Objekt wird nur aufgerufen, wenn nichts anderes angerufen werden kann. Intuitiv macht das Sinn, denn das Gegenteil wäre Unsinn – Cruncher
Das ist eine tolle Interviewfrage! :) –