我有几个二维数组,其名称类似于
object[,] s1l2
object[,] s3l4
object[,] s4l2
object[,] s9l4
等
在另一个类中,我有一个方法必须将该数组名称作为字符串变量来获取,例如:
methodName(string arrayName);
我尝试s9l4.ToString();
,但显然返回-System.Object[,]
所以,问题是–我怎样才能将object[,] s9l4
作为字符串— “ s9l4”
答案 0 :(得分:1)
我觉得我必须不回答您的明确问题,而是挑战前提,并要求您修改对什么是对象还是什么变量的理解。请使用以下代码段:
object[,] s3l4 = new object[0,0];
object[,] s4l2 = s3l4;
在这种情况下,您有一个对象-第一行中的初始化数组-但是两个都指向它的变量。在这种情况下,该数组的“名称”是什么? s3l4
还是s4l2
?答案是“都不是”,因为这两个字符串都引用方法内部的变量名称,而本地名称则引用内存中的 object 。编译后,这些名称通常会消失-您和您的代码会使用它们来引用它,但是CPU不需要此名称,它只关心内存地址。
因此,我猜测,如果您需要这些字符串,则可能是以某种方式将内存中的特定对象与用于引用该对象的临时句柄进行合并,这可能不是您的意图。