错误 CS1061 - 列表<T>.项目[Int32] 属性

Error CS1061 - List<T>.Item[Int32] Property

这个问题和this question, this question, this question (same error, different source class), and 非常相似(同样的错误,不同的原因)。

在项目中编译程序检查错误后,我得到以下 CS1061 错误:

Entity.cs(291,24): error CS1061: 'List<Entity>' does not contain a definition for 'Item' and no extension method 'Item' accepting a first argument of type 'List<Entity>' could be found (are you missing a using directive or an assembly reference?)

Entity.cs是发生错误的文件名,表示错误发生在Load()函数,如下图:

public void Load(){
    /*
        Try to spawn the entity.
        If there are too many entities
        on-screen, unload any special
        effect entities.
        If that fails, produce an error message
    */
    try{
        if(EntitiesArray.Count >= EntitiesOnScreenCap){
            if(this.Type == EntityType.SpecialEffect)
                Unload();
            else
                throw null;
        }else
            //Place the entity in the first available slot in the array
            for(int i = 0; i < EntitiesArray.Capacity; i++)
                if(EntitiesArray.Item[i] == NullEntity)
                    EntitiesArray.Item[i] = this;
    }catch(Exception exc){
        throw new LoadException("Failed to load entity.");
    }
}

错误发生在这些行(第 291 和 292 行):

if(EntitiesArray.Item[i] == NullEntity)
    EntitiesArray.Item[i] = this;

NullEntityEntity类型的字段,this也是Entity类型的字段。

EntitesArray 是一个 List<Entity>,因此,根据 MSDN 文档 here.[=62=,应该有一个 Item[] 属性 ] Entity 没有名为 Item.

的方法或数组

class开头的声明Entity:

public static List<Entity> EntitiesArray;

Entity 中的方法实例化保证 运行 只有一次:

EntitiesArray = new List<Entity>(EntitiesOnScreenCap);

字段 EntitiesOnScreenCap 是一个 int 等于 200。

这包含在最高范围内(在命名空间之前),因此应该没有任何问题:

using System.Collections.Generic;

导致此 CS1061 错误的原因是什么,我该如何解决?

Item 属性 在 C# 中不是正常的 属性。这是一种指示您可以使用索引器从 Enumerable 引用特定项目的方法。要使用它,只需将索引器值放在方括号内:

EntitiesArray[i]