![]() |
1
45
C迭代器在内部是状态机。每一次你
为了保持这种状态,C编译器创建了一个类来保存局部变量和它应该继续的位置。不可能有一个
编辑:
从技术上讲,不是所有返回的方法
|
![]() |
2
15
如果要从方法中同时返回迭代器和int,解决方法是:
您应该注意,迭代器方法(即基本上包含
这是一个常见的陷阱,一个相关的问题是:
所以一个好的模式是将迭代器方法分为两部分:一部分立即执行,另一部分包含应该延迟执行的代码。
编辑:
如果您真的想要移动迭代器将修改
|
![]() |
3
5
在较高级别上,引用变量可以指向许多位置,包括堆栈上的值类型。最初通过调用迭代器方法创建迭代器的时间和将分配ref变量的时间是两个非常不同的时间。当迭代器实际执行时,不可能保证最初通过引用传递的变量仍然存在。因此不允许(或可验证) |
![]() |
4
3
其他人解释了为什么迭代器不能有ref参数。这里有一个简单的选择:
如果要传入和传出多个项,请定义一个类来保存它们。 |
![]() |
5
1
我已经使用函数解决了这个问题,当我需要返回的值是从迭代项派生出来的:
|
|
Robert King · Unity C#语法问题-转换位置 1 年前 |
![]() |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
|
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
![]() |
i_sniff_ket · 在unity之外使用unity类 2 年前 |