投稿者 kojiro  (社会人) 投稿日時 2024/4/24 23:15:59
var にしたら、波線は、消えましたが、なぜなのか。よく見ると、ほかの箇所にも波線があるようです。
 
namespace WinFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        public  class class1
        {
            private string con;    //conが波線->CS8618: null非許容のフィールドとして’CON'には、コンストラクター終了時にnull以外の値が入っていなければならない。フィールドをnull許容として宣言することを検討してください。とのことです。
            public string? CON
            {
                get { return this.con; }
                set { this.con = value; }  //valueに波線 CS8601 null参照代入の可能性があります。
            }
        }
        private class1 test = null;  //nullに波線 CS8625:nullリテラルをnull参照代入に変換できません
        private void button1_Click(object sender, EventArgs e)
        {
            if (this.test == null)
            {
                this.test = new class1();
                this.test.CON = "2";
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            if (this.test == null)
            {
                MessageBox.Show("まだ初期化さrていません");
            }
            else
            {
                string value = this.test.CON;  //stringをvarに変えたら、this.test.CONの波線が消えました
                MessageBox.Show(value);
            }
        }
    }
}
 

以上のように、波線があります。