私はちょうどこの問題につまずいて、なぜそうなのか興味があります:Application.OpenForms
インデックス経由でのコレクション内のフォームにアクセスすると、コンパイラはそれがフォームであると教えてくれます:
var form = Application.OpenForms[0];
form.Name = "A new name";
これは完全に正常に機能します。しかし、次のようにアクセスすると:
foreach (var form in Application.OpenForms)
{
form.Name = "A new name";
}
コンパイラform
は、オブジェクトであると教えてくれます。なぜこのようになっているのですか?