分配 system.object 类 C# 的元素
本文关键字:元素 system object 分配 | 更新日期: 2023-09-27 18:36:30
我有一个这样的system.object:
object paramNames = new object[]
{
1,
2,
3,
4,
};
我正在尝试分配值,我需要在循环中执行此操作而不是手动执行此操作,因此如下所示:
for (int i = 0; i < inputcount; i++)
{
paramNames[i] = int.Parse(textreader.ReadLine());
}
但是我遇到此错误:无法将带有[]的索引应用于"对象"类型的表达式。如果您能帮助我,我真的很感激!
您的问题是您已将parmNames
声明为类型 Object
。 您需要将变量声明为类型 Object[]
这样:
object[] paramNames = new object[]
{
1,
2,
3,
4,
};
有趣的是:object[] paramNames = new object[]
实际上是合法的,因为Object[]
可以转换为类型Object
这意味着您也可以在技术上像这样修复它:
((Object[])paramNames)[i] = int.Parse(textreader.ReadLine());
你不应该这样做,它不太清楚,但它显示了为什么赋值不会引发编译器异常,而尝试的赋值会抛出异常。
你需要像下面这样做:
object[] paramNames = new object[]
{
1,
2,
3,
4,
};
或更好
var paramNames = new int[]
{
1,
2,
3,
4,
};
或更好
var paramNames = new[]
{
1,
2,
3,
4,
};
你可以按如下方式使用
var paramNames = new List<object>();
for (int i = 0; i < inputcount; i++)
{
paramNames.Add(int.Parse(textreader.ReadLine()));
}