0

私は以下のコードを持っています。

この行string content = twitterMsg.text;は、twitterMsgに対して「未割り当てのローカル変数の使用」というエラーを作成しています。コレクション内の自分のTwitterSearchResponse.results.textフィールドにアクセスできないようです。DataContractJsonSerializer<TwitterMain>

TwitterSearchResponse.resultstextは、およびなどの名前が付けられたいくつかの文字列フィールドを持つ配列(オブジェクトプロパティのセット)user_infoです。

誰かがこれを手伝うことができますか?

以下のコードを更新しました。TwitterSearchResponse.results適切に反復して割り当てることができない理由について、私はまだ非常に混乱していますcontent = twitterMsg.text

価値のあるものとして、これが私のDataContractJsonSerializerメソッドです。

String url = String.Format("http://search.twitter.com/search.json?q={0}&rpp=20", Server.UrlEncode(txtSearchFor.Text));


// parse the JSON data
using (MemoryStream ms = new MemoryStream(wc.DownloadData(url)))
{
    DataContractJsonSerializer jsonSerializer =
        new DataContractJsonSerializer(typeof(TwitterMain));
    TwitterSearchResponse = jsonSerializer.ReadObject(ms) as TwitterMain;  // read as JSON and map as TwitterOut
}

そして、これが問題が存在する元の投稿されたコードです。

    public List<MatchCollection> returnMatches(DataContractJsonSerializer<TwitterMain> TwitterSearchResponse)
{
        List<MatchCollection> messageLinks = new List<MatchCollection>();

        foreach (TwitterResult twitterMsg in TwitterSearchResponse.results)
        {
            string content = twitterMsg.text;

            // capture internet protocol pre-fixed words from message
            string pattern = @"...";
            messageLinks.Add(Regex.Matches(content, pattern, RegexOptions.IgnoreCase));

            // capture @username twitter users from message
            string atUsernamePattern = @"@([a-zA-Z0-9-_]+)";
            MatchCollection PeopleMatches = Regex.Matches(content, atUsernamePattern, RegexOptions.IgnoreCase);
        }

        return messageLinks;
}
4

1 に答える 1

2

割り当てられていないローカル変数の使用を実際に報告していると思われますMessageLinks。の使用はtwitterMsg問題ないようです。

ですから、大きな問題は、結果がない場合に何を返したいかということです。null を返すことに満足している場合は、宣言時に値を代入してくださいMessageLinks

MatchCollection次の質問: 本当に最後に見つけたものだけを返したいですか? それが現在の動作です。すべての変数をループして、毎回同じローカル変数を設定し (つまり、前の値を置き換え)、最後の値を返します。

returnMatches最後の質問: キャメル ケースのメソッド名 ( )、パスカル ケースのローカル変数 ( MessageLinks)、パスカル ケースのパラメーター名 ( TwitterSearchResponse)、キャメル ケースのプロパティ ( )を使用する理由はありますtextか? それtextは、JSON に由来するためだと思いますが、それ以外の場合は、通常の .NET 命名規則に従うことをお勧めします。

于 2010-06-30T18:52:31.757 に答える