2016-09-01 40 views
8

私は新しく、ちょっと混乱して「yield」です。しかし、最終的には、それがどのように働いているのかを理解しています。コルーチンの "yield return 0"と "yield return null"の違いは何ですか?

"yield return 0"と "yield return null"の違いはわかりません。

は、次のフレームが実行されるのを待っていますか?

私の悪い英語を申し訳ありません。どうもありがとうございました。

答えて

18

単一フレームの両方yield return 0yield return null利回りを「私は再び私の前の状態から継続と呼ばれていたときに、発信者になりましコントロールを返しますが、」言っようなものです。最大の違いは、フードの下で発生する0のボクシングとアンボクシングのためにメモリを割り当てますが、yield return nullではありません。メモリを割り当てます。このため、パフォーマンスを気にする場合は、yield return nullを使用することを強くお勧めします。

+0

あなたはどのボクシングとアンボクシングについて話していますか? –

+1

@YuvalItzchakov「0」のボクシング。 – Servy

+0

@サーベイどこが正確にボクシングが発生しますか? –

-2

「返品する」こともできます。私は、コルーチンに関する最終結果は同じであると思います。

収量リターンが

+5

「yield break」はありませんか?私が知っている限り、「利回り」は常に表現を必要とします。その場合、列挙子が「yield break」を終えてから継続がないでしょう。 – Joey

+1

Joeyが示唆するように、これはコンパイルされません。 –

+0

これはUnityScriptに有効です。 – Everts

関連する問題