2011-01-15 2 views
0

私は特にGoogleコンタクトAPIを使用していますが、これは他のシナリオにも当てはまります。C#/ Visual Studio - 私がブレークポイントを持っていない限り、オブジェクトはヌルです

私はブレークポイントなしのコードを実行させ
Contact newContact = new Contact(); 

、私は、このオブジェクトのすべてのプロパティにとNullReferenceExceptionを取得:

私は、次のコードを持っています。しかし、この行の直後にブレークポイントを置くと、すべてのプロパティが初期化され、残りのコードが正常に実行されることがわかります。

任意のアイデアの大幅

+0

コードをシングルステップ実行し、 'Contact'クラスのコンストラクタが何をするかを見てください。 Rafが彼の答えに示唆しているように、それはある種の非同期I/Oを行うかもしれない(それは誰にでも止められているはずではない)。 –

答えて

1

をいただければ幸い多分それはContactオブジェクト(インターネットからすなわち、ダウンロードデータ)を初期化するために時間がかかります。非同期で終了した場合は、ブレークポイントを設定するときにプログラムを実行する時間を与えます。

+0

私はオブジェクトの初期化の直後にThread.Sleep(10000)を入れてみました。私はまた、オブジェクトのプロパティの最後のnull効果がないうちにThread.Sleep(1)をループしてみました。しかし、コードに侵入すると、オブジェクトは完全に初期化されます。 – JasonS

+0

ええと、ブレークポイントを置くと、このオブジェクトを見て、何らかの形でそれを初期化するメソッドの1つを呼び出します。もちろん、私は推測しています。何とかあなたを助けてくれるといい –

関連する問題