我是C#的新手。我在C#中有一个Object,如何检查它是单个还是多维数组?
int[,] array = new int[2,3];
object obj = (object) array;
if(obj is Array)
{
if(obj.Rank==2) // I need to cast obj to array first in order to call Rank
{
//do something
}
}
答案 0 :(得分:3)
有两种主要方法可以实现这一目标。根据您的建议,casting obj
到Array
:
if(obj is Array && ((Array)obj).Rank == 2)
{
//do something
}
或使用as
operator:
var arr = obj as Array;
if(arr != null && arr.Rank == 2)
{
//do something
}
请注意,在这两种解决方案中,为了简单起见,我使用conditional AND operator(if
)将两个&&
组合在一起。如果左侧评估为true
,则仅评估此右侧。