错误 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;
NullEntity
是Entity
类型的字段,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]
这个问题和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;
NullEntity
是Entity
类型的字段,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]