我有一个函数会返回一个每个元素中包含不同类型的对象数组。 这是我想要实现的小型复制品。
public static object[] asset()
{
object[] tab = new object[11];
tab[0] = bool;
tab[1] = int;
tab[2] = int;
tab[3] = int;
tab[4] = int;
tab[5] = int;
tab[6] = string;
tab[7] = double;
tab[8] = float;
tab[9] = int;
tab[10] = ""; //string
return tab;
}
object[] testobject = new object[11];
testobject = asset();
If (testobject[0] = true)
{
}
所以我试图对对象[0]执行bool检查,这是一个bool。显然它不会像这样工作。我尝试将object [0]转换为boolean然后测试它,这是我对整数或双精度的操作,但它也不起作用。
有什么想法吗?
答案 0 :(得分:2)
我认为你想在检查之前进行投射,虽然很难说你的代码中有一些编译错误。
if ((bool)testobject[0] == true)
{
}
请注意使用==
代替=
(这是一项作业)。
您甚至可以将其缩短为:
if ((bool)testobject[0])
{
}
答案 1 :(得分:1)
object[0] is bool
如果是true
,则会生成bool
,如果不是false
,则生成if (object[0] is bool)
{
bool myBool = (bool)object[0];
// do something with myBool
}
。
bool? myBool = object[0] as bool?;
如果您使用:
myBool
如果值不是null
,那么bool
将是bool? myBool = object[0] as bool?;
if (myBool != null)
{
// do something with myBool
}
,如果是,则它将具有布尔值。
{{1}}