gpt4 book ai didi

c# - 错误CS1061-List .Item [Int32]属性

转载 作者:行者123 更新时间:2023-12-02 10:45:06 24 4
gpt4 key购买 nike

此问题与this questionthis questionthis question(相同的错误,不同的源类)和this question(相同的错误,不同的原因)非常相似。

在项目中编译程序以检查错误后,出现了以下 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类型的字段。

根据MSDN文档 hereEntitesArrayList<Entity>,因此应具有 Item[]属性。 Entity没有名为 Item的方法或数组。

Entity类的开头声明:
public static List<Entity> EntitiesArray;

保证仅运行一次 Entity中的方法中的实例化:
EntitiesArray = new List<Entity>(EntitiesOnScreenCap);

字段 EntitiesOnScreenCap是等于200的 int

这是包含在最高作用域(在 namespace 之前)的,因此对此不会有任何问题:
using System.Collections.Generic;

是什么导致此 CS1061 错误,如何解决?

最佳答案

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

EntitiesArray[i]

关于c# - 错误CS1061-List <T> .Item [Int32]属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51219818/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com