オブジェクト参照がオブジェクトインスタンスに設定されていません
質問
私は通常、このエラーを取得し、(常に)それを解決する方法がわかりません。 私もそれを得た。この時間は、私が概念を理解するか、何かが欠けていないよと思われます ここでは、コードがあります。
// create a new twitteroo core with provided username/password
TwitterooCore core = new TwitterooCore(username, password);
// request friends timeline from twitter
Users users = core.GetTimeline(Timeline.Friends); // error here
いくつかの助けと何が起こっているのもいくつか説明してください おかげ
解決
私は最終的に問題を発見しました それは私のファイアウォールは、Visual Studioへの接続をブロックしているように見えるためでした。 今では全く変更なしで動作します:) すべてのご支援のおかげで、
他のヒント
このエラーは痛みが、それは基本的にあなたがアクセスしているいくつかのvairableはまだヌルであることを意味している。
この例では、どこでタイムラインを初期化しますか?あなたのコードは次のようになります。
Users users = core.GetTimeline().Friends;
OK、非常によく名前が付けられていない、ユーザーのコレクションを返す(、私は少しまばらであるtwiterooドキュメント、で見てきた、と私は、あなたは間違いなくGetTimelineに渡すために、タイムラインのインスタンスをインスタンス化する必要があると思います私見では)。私は何を把握することはできませんが、タイムラインのインスタンスを開始する方法である。
OK、それはそれがnullのタイムラインではないです、(それが列挙型です!)BTHBが言うように、それだけで、おそらく、ユーザー名またはパスワードが間違っている、またはそれがTwitterに接続できない、コアになることができますか?
あなたが私たちに与えられている情報によるかを知ることは不可能コア、ユーザ名、パスワード、またはTimeline.Friends、可能性があります。
私はTimeline.Friendsに時計を固執し、その後、(Timeline.Friends)core.GetTimelineに時計を置いていない場合、そのNULLでないをチェックし、そのエラーの行にブレークポイントを置きたいとザッツはnullを返すかどうかを確認します。
それはあなたの右方向にナッジを与える必要があります。、あなたはおそらく、あなたはこれらのいずれかがnullを返している原因を調べるために使用してTwitterのAPIのドキュメントを読んでする必要があります。
どのようなあなたのコードをチェックについて:
Users users = null; if (Timeline != null) { TwitterooCore core = new TwitterooCore(username, password); if (core != null) { var friends = Timeline.Friends if (friends != null) users = core.GetTimeline(Timeline.Friends); } }これは、例外なく実行された場合は、
オブジェクトの一つは、おそらくヌルだっます。
、エラーメッセージ、のオブジェクト参照のオブジェクトののインスタンスの中の2つの特定のフレーズがあります。 OOP言語を扱うときにこれらの概念は非常に基本的なものです。
まず、のオブジェクト参照の関数又はクラスの変数と考えることができます。この用語はまた、対象への特定の参照を期待する関数パラメータを参照することができます。それは「=」演算子を使用して値に設定されるまで、最初に変数の値がNULLです。頻繁にあなたが同じ文で変数宣言と「=」の動作を持っています。
用語のオブジェクトのインスタンスするは、構文new
を使用して作成されたオブジェクトを指します。あなたがオブジェクトを初期化するnew
を呼び出すと、未使用のメモリ位置は、プログラムが終了、またはオブジェクトがスコープの外に出ると、ガベージコレクタによって解放されるまで、オブジェクトのコピーを保存するために割り当てられています。作成時にオブジェクトのプロパティは、オブジェクトを作成するために呼び出されるコンストラクタメソッドによって定義されています。
このコードを考えてみます:
Integer my_int;
my_int = new Integer(5);
この例では、 'my_int' はInteger
オブジェクトのインスタンスにののオブジェクト参照であるの作成されます。
あなたはInteger
ののインスタンスのにそれを参照を割り当てる前に、 'my_int' にアクセスしようとすると、エラーを持つことになり、「をオブジェクト参照の(my_int)オブジェクトの(Integer
)」
あなたは、DLLをコンパイルした場合、あなたがGetTimeline(列挙型)列挙引数に取ることがわかります。
コンストラクタの呼び出しは、罰金になります:
TwitterooCore core = new TwitterooCore(username, password);
ソース:
public TwitterooCore(string username, string password)
{
this._username = username;
this._password = password;
}
GetTimelineは、接続が試行されたされます。
public Users GetTimeline(Timeline timeline)
{
WebClient client = new WebClient();
XmlDocument document = new XmlDocument();
string xml = string.Empty;
byte[] buffer = null;
client.set_Credentials(this.GetCredentials());
buffer = client.DownloadData(this.GetTimelineUrl(timeline));
xml = Encoding.UTF8.GetString(buffer);
document.LoadXml(xml);
return this.DecodeStatusXml(document);
}
Timeline.Friendsかもしれませnullで、タイムラインがヌルであるかもしれません。私はあなたが例外のスタックトレースで、あなたのTwitterの枠組みの文書に見てお勧めします。