共用方式為


編譯器錯誤 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()
        { }

    }
}

請參閱

參考

結構 (C# 程式設計手冊)

自動實作的屬性 (C# 程式設計手冊)