0
以下部分對constructor initializers有什麼含義?這是什麼意思
實例構造函數初始值設定項無法訪問正在創建的實例。因此,在構造函數初始值設定項的參數表達式中引用
this
是一個編譯時錯誤,因爲它是參數表達式通過簡單名稱引用任何實例成員的編譯時錯誤。
以下部分對constructor initializers有什麼含義?這是什麼意思
實例構造函數初始值設定項無法訪問正在創建的實例。因此,在構造函數初始值設定項的參數表達式中引用
this
是一個編譯時錯誤,因爲它是參數表達式通過簡單名稱引用任何實例成員的編譯時錯誤。
這意味着當構造函數初始化器運行時,實例仍處於創建過程中。因此,初始化不能訪問實例成員,無論是通過this
或直接:
class Foo
{
private int _bar;
public Foo(int bar)
{
_bar = bar;
}
public Foo() : this(_bar) // Illegal.
{
}
public Foo() : this(this._bar) // Also illegal.
{
}
}
這個道理也適用於這兩個構造函數初始化(this()
和base()
)。
+1導致作者不能被指責爲微軟文檔,我認爲這是許多人都不知道的東西。 –
@alina文檔有什麼問題,爲什麼會受到責備? –
沒有什麼是錯的,只是人們在沒有留下任何評論的情況下投下了這個問題。 –