Share via


コンパイラの警告 (レベル 1) CS1060

更新 : 2007 年 11 月

エラー メッセージ

フィールド '名前' は、割り当てられていない可能性があります。構造体が代入されていない場合、構造体のインスタンス変数は初期代入なしになります。

構造体メンバを明示的に初期化しない場合、それらは既定値に初期化されます。クラス型 (および他の参照型) の既定値は null です。初期化されていないクラスにアクセスすると、実行時に NullReferenceException がスローされます。コンパイラは、クラス メンバが初期化されるかどうかを明確に判断できないため、CS1060 はエラーではなく警告です。

このエラーを解決するには

  • すべてのメンバを初期化する struct に対してコンストラクタを指定します。

使用例

次のコードでは、クラス型 U は struct S のメンバですが、初期化されないため CS1060 が生成されます。

// cs1060.cs
namespace CS1060
{    
    public class U
    {
        public int i;
    }

    public struct S
    {
        public U u;
        // Add constructor to correct the error.
        //public S(int val)
        //{
        //    u = new U() { i = val };
        //}
    }
    public class Test
    {
        static void Main()
        {
            S s;
            s.u.i = 5;  // CS1060

            //Try these lines instead, and uncomment the constructor in S
            // S s = new S(0);
            // s.u.i = 5;
                 
        }
    }  
}

参照

参照

構造体 (C# プログラミング ガイド)