-1

文字列 clientNameStr で「置換」を使用すると、「オブジェクト参照が見つかりません」というエラーが発生します。

// Get client name
clientName = currentUser.GetValue("ClientName");
string clientNameStr = (string)clientName;
string clientURLStr = string.Empty;
clientURLStr = clientNameStr.Replace(' ', '-');
// clientURLStr = "ST9215-Stanic-Parts-Ltd";

コメント アウトされた文字列を置換すると (そして既存の文字列をコメント アウトすると)、正常に機能するため、置換機能と関係があるはずですが、何ですか? " と ' の両方の引用符を使用して試してみましたが、同じ結果になりました。

どんな助けでも大歓迎です。

ありがとう、オリ。

4

3 に答える 3

5

それは基本的に null 参照1currentUser.GetValue("ClientName")を返していることを示しています。何が機能するかはわかりませんが、2 つのオプションがあります。currentUser.GetValue("ClientName")

  • 正しくnullを返しているので、それを処理する必要があります
  • null を返すべきではなく、修正する必要があります (この状況に遭遇した場合に例外をスローする可能性があります)。

1 null 以外の参照を返し、null を返す次の行で文字列へのユーザー定義の変換を使用している可能性がありますが、可能性は低いですの型がわからないので、はっきりとは言えませんclientName

于 2012-03-20T11:59:53.160 に答える
3

おそらく clientName (したがって clientNameStr) は null です。文字列でなければならないことがわかっている場合でも、null オブジェクトに対してメソッドを呼び出すことはできません。

于 2012-03-20T11:59:00.167 に答える
0

currentUser.GetValue("ClientName") が null を返す可能性があるため、Replace を実行しようとするとエラーがスローされます。

より良いコーディングは

clientName = currentUser.GetValue("ClientName");
string clientNameStr = clientName ?? "";
string clientURLStr = clientNameStr.Replace(' ', '-');
于 2012-03-20T12:00:40.037 に答える