12

検証を設定しようとしているときに、テキストボックスがnullかどうかを確認する際に最初にいくつかの問題が発生しました。使用してみました

    private void btnGo_Click(object sender, EventArgs e)
    {
        string name = textLogin.Text;
        if (name == null)
        {
             labelError.Visiblle = true;
             labelError.Text = "Field Cannot be Left Blank"
        }
    }

しかし、これを試すまではうまくいきませんでした

    private void btnGo_Click(object sender, EventArgs e)
    {
        string name = textLogin.Text;
        if (name == "")
        {
             labelError.Visiblle = true;
             labelError.Text = "Field Cannot be Left Blank"
        }
    }

私の質問は、("") と (null) の違いと、null が機能しなかった理由を知りたいということです。

前もって感謝します

4

9 に答える 9

20

0と空の配列の違いと同じです: すべて。それらは異なる値です。""空の文字列であり、テキストがすべてであるため、空白のテキストボックスが保持するものです。nullは値ではなく、空白のテキスト ボックスのText.

于 2013-06-30T02:27:50.647 に答える
5

""null「存在しない」を意味する空の文字列です。

あなたの場合、最初nameに「存在しない」と比較しましたが、これnameは存在したために偽でした。name次に、空の文字列の値があるため、真である空の文字列と比較しました。

于 2013-06-30T02:30:43.410 に答える
3

のデフォルト値はnullでTextBox.TextあるString.Emptyかどうか。""したがって、最初のコードは機能しませんでした。nullオブジェクトが何も指していないことを示すだけで、メモリが割り当てられていません。

于 2013-06-30T02:31:42.670 に答える
2

素人の言葉でnullは、値の欠如を""意味し、長さゼロの文字列を意味しますが、これは同じことではありません。null文字列と""同等に扱うソフトウェアがあるかもしれませんConsole.WriteLineが、それでも同じにはなりません。

厳密には"" == null表現はfalseデザインです。String.NET Frameworkでの型の等価比較は、と等しいとは見なされない==演算子のオーバーロードによって機能します。null""

于 2013-07-19T17:49:20.803 に答える
2

null単にオブジェクト (この場合はtextLogin.Textオブジェクト) が存在しないことを意味します。これを実現するために、textLogin オブジェクトは存在できません。したがって、textLoginこの場合、オブジェクトは null ではないため、null にするtextLogin.Textことはできません。

""一方、空の文字列を意味します。これは、テキスト ボックスのテキストに何もないことを意味します。つまりtextLogin.Text、その中に文字は含まれていません。

于 2013-06-30T02:28:45.427 に答える
1

違いは""、空の文字列を意味しますが、null存在しないことを意味します

于 2013-07-19T17:18:08.107 に答える
1

IsNullOrWhiteSpaceテキストボックスの入力検証を行うために使用できます。null、空の文字列、または空白 (タブ、スペースなど) をチェックします。 http://msdn.microsoft.com/en-us/library/system.string.isnullorwhitespace.aspx

于 2013-06-30T02:31:05.237 に答える
1

シンプルで""、有効な値があります。つまり、値String.Emptynullありません。

于 2013-06-30T02:39:17.433 に答える