-1

私はこれを持っていますSortedDictionary

var signature_parameters = new SortedDictionary<string, string>
{
    { "oauth_callback", SocialEngine.twitter_aggrega_redirect_uri },
    { "oauth_consumer_key", SocialEngine.twitter_aggrega_consumer_key },
};

今私はこれを試しました:

var header_parameters = signature_parameters.Add("oauth_signature", Uri.EscapeDataString(oauth_signature));

しかし、それは言いI can't assign a void variable to a implicit methodます。

どこが間違っていますか?

4

3 に答える 3

2

どこが間違っていますか?

メソッドを呼び出していますが、Add何かが返されることを期待しています。そうではありません。

同じエントリと 1 つの新しいエントリで新しい辞書を作成しようとしている場合は、おそらく次のようにする必要があります。

var headerParameters = new SortedDictionary<string, string>(signatureParameters)
{
    "oauth_signature", Uri.EscapeDataString(oauth_signature)
};

コンストラクターは既存の辞書のコピーを作成し、コレクション初期化子はキーと値のペアを新しい辞書に追加します。

于 2013-10-09T10:23:12.030 に答える
1

AddAddメソッドはアイテムを辞書に追加しますが、何も返さないため、メソッドの結果を変数に割り当てることはできません。

signature_parameters.Add("oauth_signature", Uri.EscapeDataString(oauth_signature))

後で割り当てることもできますが、参照型であるため、参照をコピーするだけです。

var header_parameters = signature_parameters;
于 2013-10-09T10:21:31.307 に答える
0

Addディクショナリに項目を追加しますが、何も返さないため、void メソッドです。

だからこれを変える

var header_parameters = signature_parameters.Add("oauth_signature", Uri.EscapeDataString(oauth_signature));

var header_parameters = new KeyValuePair<string, string>("oauth_signature", Uri.EscapeDataString(oauth_signature));
signature_parameters.Add(header_parameters.Key, header_parameters.Value);

(最後に挿入したい場合KeyValuePair

于 2013-10-09T10:22:38.327 に答える