0

簡単な質問

このコードを C# で考えてみましょう

String a;
String b;
String c;

 1. a =  
 2. b =
 3. //Comment
 4. c = "a String";

コンパイル中は問題ありませんでしたが、アプリケーションを実行するとエラーが発生しました。私のログから、エラーは上記で発生します。

質問:

エラーの原因は 3 行目のコメントですか?

エラーは「オブジェクト参照がオブジェクトのインスタンスに設定されていません」です

コンパイラは上記のコードを 1 つのステートメントとして扱っていると思います。

このコードは、aspx ページのコード ビハインドにあります。(aspx.cs)

//裏話//

aspx はテスト サーバーでテストされ、ファイルでした。ただし、ページを本番サーバーにデプロイした後、pageload() でエラーが発生しました。エラーが発生した行は、上記のコード例の 1 行目です。

エラーがコメントによって引き起こされたのは私の疑いです。

私は正しいですか?

4

4 に答える 4

2

元のコードは合法ではありませんでした。編集したコードは問題ありません。3 つの変数すべてに同じ文字列 (「a String」) が割り当てられます。

正確にどのようなエラーが表示されていますか?


(「オブジェクト参照がオブジェクトのインスタンスに設定されていません」を含むように質問が更新されました)

このエラーは、投稿されたコードとは何の関係もありません (貼り付け時にコードを誤って表現した場合を除きます)。また、//コメントとは何の関係もありません。他の場所を見る必要があります。スタック トレースを確認するか、デバッグ/出力メッセージを挿入してみてください。または、コードをステップ実行して、実際に爆発する場所を確認します。

于 2008-12-20T13:26:33.610 に答える
2

コンパイラは 3 行目の "//" の右側にあるものをすべて無視しますが、1、2、4 行目はすべて同じステートメントの一部です (4 行目より下の ";" またはブロックに到達するまで)。 .

あなたのサンプルコードが投稿中に何かを失っていない限り、このコードはコンパイルさえされるべきではありません (解析エラー)。


編集したコードでは、構文は有効であり、エラーの原因にはなりません。エラーを投稿してください...

于 2008-12-20T13:33:34.157 に答える
1

に書き換えると動きますか?

a = b = c = "a String";

? もしそうなら、あなたの問題の原因は明らかです;)

于 2008-12-20T13:27:59.067 に答える
0

コードにエラーはありません。それはうまくいきます。エラーが表示されている場合は、別の場所にあります。

于 2008-12-20T14:45:43.793 に答える