В чем разница между "yield return 0" и "yield return null" в корутине?

Я новичок и немного смущен "yield". Но, наконец, я понимаю, как это работало с помощью WaitForSeconds

но я не вижу разницы между "yield return 0" и "yield return null".

оба они ждут следующего кадра для выполнения?

извините за мой плохой английский. Большое спасибо.

2 ответов


и yield return 0 и yield return null выходы для одного кадра. Самая большая разница в том, что yield return 0 выделяет память из-за бокса и распаковки 0 что происходит под капотом, но yield return null тут не выделить память. Из-за этого, настоятельно рекомендуется использовать yield return null Если вы заботитесь о производительности.


вы могли бы даже просто "дать отдачу"; я думаю, конечный результат тот же, что и в отношении корутины;

Yield return-это как сказать: "верните управление вызывающему, но когда меня снова вызовут, продолжайте из моего предыдущего состояния"