5

次のコードを検討してください。

var variables = System.Environment.GetEnvironmentVariables();
foreach (DictionaryEntry vari in variables)
{
    Console.WriteLine(vari.Key);
    Console.WriteLine(vari.Value);
}

それは正常に動作します。variablesですので、 、 with 、IDictionaryで構成されます。DictionaryEntryobject Keyobject Value

入力できないのはなぜforeach(var vari in variables)ですか? それは私に与えます

error CS1061: 'object' does not contain a definition for 'Key/Value'...

奇妙に思えますが、この動作の理由を見つけることができません。DictionaryEntryは ですが、struct大丈夫List<DictionaryEntry>です。もちろんIDictionary一般的ではないことは理解していますが、マニュアルには含まれていると書かれているDictionaryEntriesので、使用できるはずvarです...

4

3 に答える 3