无法使用集合初始化程序实现类型,因为它没有实现'System.Collections.IEnumerable'

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法使用集合初始化程序实现类型,因为它没有实现'System.Collections.IEnumerable'相关的知识,希望对你有一定的参考价值。

我正在使用C#和XNA。

我有课:

class Quad
    {
        public Texture2D Texture;
        public VertexPositionTexture[] Vertices = new VertexPositionTexture[4];
    }

并且我正在尝试创建一个上述类的新实例:

Quad tempQuad = new Quad() 
{
    Texture = QuadTexture,
    Vertices[0].Position = new Vector3(0, 100, 0),
    Vertices[0].Color = Color.Red
};

然后将其添加到“四元组”列表中>

QuadList.Add(tempQuad);

我一直收到错误消息:

“无法使用集合初始化程序实现类型,因为它没有实现'System.Collections.IEnumerable'”

或者我被告知

顶点在当前上下文中不存在。

有没有原因我无法创建此类?我在傻吗?我必须这样做吗?:

Quad tempQuad = new Quad();

tempQuad.Vertices[0].Position = new Vector3(0, 100, 0);
tempQuad.Color = Color.Red;

QuadList.Add(tempQuad);

有没有解决的办法?任何帮助将不胜感激。

我正在使用C#和XNA。我有一个课:类Quad {public Texture2D Texture;公共VertexPositionTexture []顶点=新的VertexPositionTexture [4]; }并且我正在尝试...

答案

对象初始化语法期望分配给您正在初始化的对象的属性,但是通过尝试分配给Vertices[0],您试图分配给正在初始化的对象的属性的索引的属性( !)。

以上是关于无法使用集合初始化程序实现类型,因为它没有实现'System.Collections.IEnumerable'的主要内容,如果未能解决你的问题,请参考以下文章

无法构造枚举,因为它没有可访问的初始化程序

BaseClass无法实现interface.variable,因为它没有匹配的返回类型

集合详解之 Map

使用 Iterable 初始化 Set

Java 集合框架—— ArrayList

Redis数据类型