2

私は最近、会社に所属していない作成者からいくつかのコードの所有権を取得しました。コード全体で、この行を見つけています

if (string.Compare(string.Empty, textbox1.Text, true) == 0)

私は最先端の C# プログラマーではありませんが、機能的には C# と同じように思えます。

if (textbox1.Text == "")

最初の行がキャッチし、2 番目の行がキャッチしないエッジ ケースはありますか?

4

2 に答える 2

7

実際には、代わりに使用する必要がありますString.IsNullOrEmpty(textbox1.Text)

コメントで指摘されているように、String.IsNullOrWhitespace実際には「空の」文字列ではなく、空白だけが含まれていることが多い GUI コントロールを操作しているため、特に便利です。

于 2013-11-04T21:14:32.457 に答える
6

case を無視して文字列を比較していますが、それは悪い方法です。String.Equals大文字と小文字を区別せずに文字列を比較するためのオーバーロードがあります。

文字列が空の文字列で構成されているかどうかを確認するには、String.IsNullOrEmptyを使用する必要があります。.Net Framework 4.0 以降を使用していて、スペースを空の文字列と見なしたい場合は、 を使用できますstring.IsNullOrWhiteSpace

値を空の文字列とのみ比較したい場合は、textbox1.Text == ""ortextbox1.Text == string.Emptyで十分です。

于 2013-11-04T21:14:39.157 に答える