我是 C# 的新手。我在 C# 中有一个对象,如何检查它是单维数组还是多维数组?
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
}
}
Run Code Online (Sandbox Code Playgroud)
有两种主要方法可以实现这一点。无论是铸造 obj一个Array如你所说:
if(obj is Array && ((Array)obj).Rank == 2)
{
//do something
}
Run Code Online (Sandbox Code Playgroud)
或使用as运算符:
var arr = obj as Array;
if(arr != null && arr.Rank == 2)
{
//do something
}
Run Code Online (Sandbox Code Playgroud)
请注意,在这两种解决方案中,为了简单起见,我if使用条件 AND 运算符( &&)将两者结合在一起。如果左侧评估为 ,这将仅评估右侧true。
| 归档时间: |
|
| 查看次数: |
1982 次 |
| 最近记录: |