C# の for ループのループ式について良い質問があります。
私は常に自分の知識を学び、広めたいと思っているので、自分のリフレクターを使って他の人から見て学ぶことがよくあります。最近、私は C# アセンブリであると思われるアセンブリを見回していました。
私はこれに出くわしました:
public virtual void DoRows(Parse rows)
{
for (; rows != null; {
Parse more;
rows = more;
}
)
{
more = rows.More;
this.DoRow(rows);
}
}
ループ式でコード ブロックを使用できるとは知りませんでした。そこで、MSDN を起動して C# の言語リファレンスを調べましたが、何も見つかりませんでした。
C++ リファレンスにはいくつかの興味深いことが示されていますが (http://msdn.microsoft.com/en-us/library/b80153d8.aspx)、私は C++ 開発者ではなく、アセンブリが C++ で書かれていないと強く感じています。 .
dotPeek は、アセンブリが v4.0.30319 / msil アセンブリであると言います。
ここで質問があります: - これは C++ ですか、それとも C# コード構造ですか?! - C# でこのようなことはできますか?
そのように見え、VS2010 でコンパイルされるコードを再現できません。
@edit: code-construct のアセンブリという単語を変更しました。
@edit II: ご回答ありがとうございます。これは、dotPeek リフレクターのバグか、for-loop-expression のイースターエッグが見つかったかのいずれかだと思います。これは、Red Gate が同じ方法について述べていることです。
public virtual void DoRows(Parse rows)
{
while (rows != null)
{
Parse more = rows.More;
this.DoRow(rows);
rows = more;
}
}