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