列表索引是如何工作的?c# 专用列表航路点; 无效移动到() { 如果(航路点[0]!=null) { 打印(“它为什么打印这个?”); } }
所以我试着使用列表,但我不明白。 到目前为止,这个列表是空的,但它会打印这些内容。我从来没有加过什么。为什么if子句是正确的 我的索引有什么问题吗 这是错误的方法吗 列表中是否总是有第一个元素 我想稍后将航路点添加到列表中。我总是希望该方法获取列表的第一个元素,然后在执行某些操作后将其删除。那么第一个元素是空的,还是所有其他元素都会下拉一个索引?列表索引是如何工作的?c# 专用列表航路点; 无效移动到() { 如果(航路点[0]!=null) { 打印(“它为什么打印这个?”); } },c#,list,indexing,C#,List,Indexing,所以我试着使用列表,但我不明白。 到目前为止,这个列表是空的,但它会打印这些内容。我从来没有加过什么。为什么if子句是正确的 我的索引有什么问题吗 这是错误的方法吗 列表中是否总是有第一个元素 我想稍后将航路点添加到列表中。我总是希望该方法获取列表的第一个元素,然后在执行某些操作后将其删除。那么第一个元素是空的,还是所有其他元素都会下拉一个索引? 列表是愚蠢的数组。请帮助这是列表索引的代码- 仅就一般知识而言,通用列表实现基于幕后动态增长的数组 如果尚未初始化列表,则会出现空异常。 如果列表字段
列表是愚蠢的数组。请帮助这是列表索引的代码-
仅就一般知识而言,通用列表实现基于幕后动态增长的数组
public T this[int index] {
get {
// Fllowing trick can reduce the range check by one
if ((uint) index >= (uint)_size) {
ThrowHelper.ThrowArgumentOutOfRangeException();
}
return _items[index];
}
set {
if ((uint) index >= (uint)_size) {
ThrowHelper.ThrowArgumentOutOfRangeException();
}
_items[index] = value;
_version++;
}
}
当您的代码运行时,您会得到一个空引用异常,因为
航路点
尚未初始化-您能显示创建列表的代码吗?代码在运行时会抛出编译器错误或空引用异常-您正在使用的实际代码是什么?此处未显示的某些东西必须正在初始化航路点
。如果它只是waypoints=newlist()
,那么它将抛出一个IndexOutOfRangeException。(我确实注意到,如果这是XNA,那么Vector2是一个结构,永远不会为null,但这与这里的要点无关)嗯,这是您的全部代码吗?我本以为会有一个错误,一定有部分代码没有显示在这里。非工作小提琴抛出错误…:)在到达程序的这一部分之前,您不仅初始化了航路点
,而且还向该列表添加了一些内容。IE:查找对waypoints=new List()
和waypoints的调用。添加(…)
或查找分配waypoints
变量的内容。在任何情况下,询问此代码为什么不能按预期工作都需要一个示例
public T this[int index] {
get {
// Fllowing trick can reduce the range check by one
if ((uint) index >= (uint)_size) {
ThrowHelper.ThrowArgumentOutOfRangeException();
}
return _items[index];
}
set {
if ((uint) index >= (uint)_size) {
ThrowHelper.ThrowArgumentOutOfRangeException();
}
_items[index] = value;
_version++;
}
}
private bool TryGetValue(int index , out Vector2 vector)
{
vector = default(Vector2);
if(wayPoints!=null&& index >=0&& wayPoint.Count> index)
{
vector = wayPoints[index];
return true;
}
return false;
}