ala*_*ere 5 c# foreach loops compiler-errors
(编辑:代码略微整洁.)
使用像这样的foreach工作正常.
var a = new List<Vector2>();
a.ForEach(delegate(Vector2 b) {
b.Normalize(); });
Run Code Online (Sandbox Code Playgroud)
然而,以下原因导致"方法没有重载'ForEach'需要1个参数".
byte[,,] a = new byte[2, 10, 10];
a.ForEach(delegate(byte b) {
b = 1; });
Run Code Online (Sandbox Code Playgroud)
原始数组的实例方法比通用集合少得多,因为它们不是模板化的。这些方法,例如ForEach()或Sort()通常被实现为本身模板化的静态方法。
在这种情况下,Array.Foreach(a, action)将解决数组的问题。
当然,经典方法foreach(var b in a)适用于列表和数组,因为它只需要一个枚举器。
然而:
(b=1)不会成功。因为您收到的是一个值,而不是一个引用。