H. *_*leh -1 c# unity-game-engine
我试过搜索但是在解释共同例程系统的所有线程之间丢失了但没有详细说明.我已经知道StartCoroutine返回一个Co-routine,所以我试着查看是否有某种隐式运算符重载为void返回类型甚至尝试过,但它没有用,我什么都没发现.老实说我只能想到,你可以说我是初学者这个问题没有具体的目标,我真的很感兴趣.提前致谢
编辑:我不作出清楚我的问题道歉:怎么能说都StartCoroutine(example());和Coroutine myCoroutine = StartCoroutine(example())?如果返回类型是Coroutine,第一个如何像void一样工作?
相比
StartCoroutine(example());
Run Code Online (Sandbox Code Playgroud)
和
Coroutine myCoroutine = StartCoroutine(example());
Run Code Online (Sandbox Code Playgroud)
void如果返回类型是第一个如何工作Coroutine?
你的规则倒退了.C#中的规则不是"非void方法必须分配或使用其返回值".规则恰恰相反:void方法只能用作语句.
如果使用非void方法作为语句,编译器将生成丢弃返回值的代码.
这是否是一个聪明的事情,编译器无法决定.
然而,这是只有情况下某些表达式可以用作报表; 不出所料,它们是那些对副作用有用的表达方式.他们是:
所以你可以说:
M();
x = 123;
x++;
new Abc();
await someTask;
Run Code Online (Sandbox Code Playgroud)
但不是
2 + 2;
(string)M();
Run Code Online (Sandbox Code Playgroud)
等等.