3

私はこのようなコードを持っています。

string b=null;
string a = Convert.ToString(b);

参照元:

ToString() の前に null をチェックする

しかし、bを文字列に変換している間、空の文字列ではなくnull値のみを取得しますが、数日前に同じconvert.tostring()を使用してnullカバーも行いました。それは正常に動作しますが、現在は動作していません。私は頭をあちこち回転させていますが、なぜこれが起こっているのか教えてください。唯一のことは、私が 3.5 フレームワークで作業していたが、現在は 4.0 であるということです。

4

3 に答える 3

5

Convert.ToString(string) は文字列を変更せずに返します。ドキュメントによると、これはフレームワークのすべてのバージョンに当てはまります。

Convert.ToString((string)null)呼び出しで null 以外が返されたのは間違いです。あなたがおそらく呼んでいたのはConvert.ToString((object)null). これは空の文字列を返します。

string a = Convert.ToString((object)null);
string b = Convert.ToString((string)null);
// a now equals string.Empty, but b equals null.

b私が行ったように文字列をオブジェクトにキャストできますが、代わりにnull 合体演算子を使用することをお勧めします。

string a = b ?? string.Empty
于 2012-06-18T11:44:19.203 に答える
0

これを試して :

文字列a=(b == null)?string.Empty:b;

于 2012-06-18T11:49:35.937 に答える
0

変換を行っているときは、それが null かどうかを確認しようとします。

このようにしてみてください

if(!String.IsNullOrEmpty(b))
{
string c=Convert.ToString(b);
}
于 2012-06-18T12:08:05.680 に答える