在列表中添加方法
本文关键字:方法 添加 列表 | 更新日期: 2023-09-27 18:22:25
我正试图向索引列表中添加一个短值,但我收到一个错误,即该方法包含无效参数。
int verticesStart = vertices.Count();
short vertStart = (short)verticesStart;
由于索引列表是一个"短",所以我将变量verticalsStart强制转换为可用的。
indices.Add(vertStart + 0);
这一行是我得到错误的地方。是否不允许我在Add方法中执行任何类型的数学函数?
short
定义的。当您执行vertStart + 0
时,结果是int
,您必须将其转换回short
:
indices.Add((short)(vertStart + 0));
(我假设你实际上并没有添加0
,而是添加了一些其他值。因为添加0当然不会改变值。)
由于索引列表是"
short
"
因此,只能将short
s添加到indices
。
vertStart + 0
该语言的规则指定short + int
的类型为int
。由于vertStart
是short
类型,而0
是int
文字,因此vertStart + 0
具有int
类型。因此,
indices.Add(vertStart + 0);
正在尝试将int
添加到您所说的包含short
s的列表中。这是不可能的。
是否不允许我在
Add
方法中执行任何类型的数学函数?
这不是重点。在将任何表达式传递给Add
方法之前,都会对其值进行评估。在您的情况下,您有一个计算结果为int
类型的表达式。但是,如果indicies
真的像你说的那样是List<short>
,那么你就不能向它添加int
s。你必须缩小到short
的转换范围。
indices.Add((short)(vertStart + 0));
算术总是在至少int
上完成。所以当你做加法时(如果我可以问的话,为什么要加0?)你会得到一个int
。之后你必须再次投回短杆。
使用这个:
using System;
using System.Collections.Generic;
public class Test
{
public static void Main()
{
List<short> list = new List<short>();
list.Add(1+1);
}
}
在C#中,1将是int
,因此您需要确保添加short
的变量