2011-11-09 10 views
2

この記事のタイトルは残念ですが、私の問題の記述方法はわかりません。オブジェクトに価値がない

だから、私は以下の本当に簡単なコード持っている:

dynamic obj = new myClass(); // In my case it is a COM object 
int FileCount = 0; 
FileCount = obj.SomeMethod(); 

をしかし、実行時に、私はこのような何かを得る:そこに起こっていただきました enter image description here

を? Filecount = 0はなぜですか?なぜそれはnullですか?

+6

これはランタイムウォッチのようです。コードはコンパイルされますか? ( 'FileCount'はヌルだとは言わないが、存在しないことに注意してください)あなたはデバッグモードで実行していますか? – ver

+1

obj.SomeMethod() - このメソッドは何を返しますか?整数? – Oyeme

+2

ウォッチウィンドウの右側にある更新ボタンを押してみましたか(値の列の最後のもの)? – Matt

答えて

3

リリースビルドにはありますか? FileCountが他の場所で使用されていない場合、変数はコンパイラによって最適化される可能性があります。デバッグビルドでそれを試してください。また、これはpdbファイルの不一致によって引き起こされる可能性があります。すべての出力ディレクトリを消去し、アプリケーションを再コンパイルします。私が考えなければならないうちに最適化され

0

は、初期化は確かに

int型てFileCount = obj.SomeMethod()無意味です。

ダイナミックなコンパイラ・マジックはあらゆる種類のコンパイラ・マジックがエラーを回避するために起こります。これは、objが動的であることに対処するためにシーンの裏に隠されているすべてのコードです。

関連する問題