我知道我们可以使用构造函数链从其他构造函数调用参数构造函数。从C#中的参数化构造函数调用无参数构造函数?
但是,
public class Program
{
public static void Main(string[] args)
{
Console.WriteLine("Hello, world!");
var t1 = new T1("t2");
}
}
public class T1
{
public T1()
{
Console.WriteLine("t1");
}
public T1(string s):base()
{
Console.WriteLine(s);
}
}
这似乎并没有调用基类的构造(不带任何参数)。
任何想法?
编辑:
当前:打印t2。 t1不在控制台上。
所以,我已经使出了以下方法:
public class Program
{
public static void Main(string[] args)
{
Console.WriteLine("Hello, world!");
var t1 = new T1("t2");
}
}
public class T1
{
private void privateMethod()
{
Console.WriteLine("common method");
}
public T1()
{
privateMethod();
}
public T1(string s):base()
{
Console.WriteLine(s);
privateMethod();
}
}
是否有这样做的更好的方法呢?
这里的基类在哪里? –
@MrinalKamboj - 他们打算使用'this'并且错误地将'base'指向T1构造函数。在这种情况下,'base'实际上是System.Object' – keyboardP
OP,快速调试提示 - 在Visual Studio中,单击'base()'并按F12。你会看到它指的是什么。现在将它换成'this()',然后按F12,你会发现它现在引用了'T1'构造函数。如果您没有获得您期望的编程流程,请逐行逐行进行,这有助于找出问题的根源。 – keyboardP