resultingThing
コンパイラは、以下のコードで割り当てられる前に使用されていると文句を言います。
private IEnumerable<IThing> FindThings(dynamic spec)
{
if (spec == null)
yield break;
IThing resultingThing;
if (spec.Something > 0 && dictionary.TryGetValue(spec.Something, out resultingThing))
yield return resultingThing;
else
// ...
}
なぜそれがこれを主張するのですか?
私は、yieldの使用法がない(たとえば、だけreturn IEnumerable<IThing>
)が動的パラメーターを使用する別のバージョンのメソッドを試しました。また、動的が渡されないバージョンのメソッド(つまり、私たちが行ったこと)を試しました。以前のバージョンのC#)。これらはコンパイルします。