我知道我們可以使用構造函數鏈從其他構造函數調用參數構造函數。從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