C# 開発

【C#】null

2025.01.22 string 型変数で null を扱う

private void button1_Click(object sender, EventArgs e)
{
    // Null リテラルまたは Null の可性があ値を Null 非許容型に変換しています:
    string s1 = null;

    // 問題なし
    string? s2 = null;

    listBox1.Items.Add(s1 ?? "null");
    listBox1.Items.Add(s2 ?? "null");
}

2025.01.22 null の判定を行う

private void button1_Click(object sender, EventArgs e)
{
    string? s1 = null;

    if (s1 == null)
    {
        listBox1.Items.Add("s1 is null");
    }

    if (s1 is null)
    {
        listBox1.Items.Add("s1 is null");
    }
}

2025.01.29 null 合体演算子を扱う

private void Form1_Load(object sender, EventArgs e)
{
   // ?? は null 判定して、null でないか、null かに応じて結果を返す。
   // 通常は、Name1 のパターンで、空の文字列に変換することが多い。

    string? Name1 = null;
    string? Name2 = null;
    string? Name3 = "Taro";

    listBox1.Items.Add(Name1 ?? "");
    listBox1.Items.Add(Name2 ?? "(no name)");
    listBox1.Items.Add(Name3 ?? "(no name)");
}

2025.01.29 null 条件演算子を扱う

private void button1_Click(object sender, EventArgs e)
{
    string? Name1 = null;
    string? Name2 = null;
    string? Name3 = "Taro";

    Debug.WriteLine(Name1?.ToString());
    Debug.WriteLine(Name2?.ToString());
    Debug.WriteLine(Name3?.ToString());
}

2025.01.29 null 条件演算子・null 合体演算子を扱う

private void button1_Click(object sender, EventArgs e)
{
    string? Name1 = null;
    string? Name2 = null;
    string? Name3 = "Taro";

    Debug.WriteLine(Name1?.ToString() ?? "");
    Debug.WriteLine(Name2?.ToString() ?? "(no name)");
    Debug.WriteLine(Name3?.ToString() ?? "(no name)");
}

-C# 開発