編譯器錯誤 CS0188
更新:2007 年 11 月
錯誤訊息
指派其所有欄位前,無法使用 'this' 物件
建構函式 (Constructor) 必須先指派 struct 中的所有欄位,才能在 struct 中呼叫方法。
若嘗試在結構 (Struct) 建構函式中初始化屬性時出現這個錯誤,解決方法是變更建構函式參數以指定支援欄位而非屬性本身。結構中應避免使用自動實作屬性,因為自動實作屬性沒有支援欄位,因此無法透過建構函式初始化。
如需詳細資訊,請參閱使用結構 (C# 程式設計手冊)。
範例
下列範例會產生 CS0188:
// CS0188.cs
// compile with: /t:library
namespace MyNamespace
{
class MyClass
{
struct S
{
public int a;
void Foo()
{
}
S(int i)
{
// a = i;
Foo(); // CS0188
}
}
public static void Main()
{ }
}
}