首页 > 解决方案 > 将二维数组的名称转换为字符串

问题描述

我有几个二维数组,名称如下

object[,] s1l2
object[,] s3l4
object[,] s4l2
object[,] s9l4

等等

在另一个类中,我有一个必须将该数组名称作为字符串变量获取的方法,例如:

methodName(string arrayName);

我试图s9l4.ToString();但显然返回 -System.Object[,]

所以,问题是——我怎样才能得到object[,] s9l4字符串—— “s9l4”

标签: c#c#-4.0

解决方案


我觉得我不必回答您的明确问题,而是挑战前提并要求您修改对对象是什么与变量是什么的理解。拿这个片段:

object[,] s3l4 = new object[0,0];
object[,] s4l2 = s3l4;

在这种情况下,您有一个对象 - 第一行中的初始化数组 - 但两个变量都指向它。在这种情况下,该数组的“名称”是什么?s3l4还是s4l2?答案是“两者都不是”,因为这两个字符串都引用方法中的变量名,即引用内存中对象的本地名称。编译后,这些名称通常会消失 - 您和您的代码使用它们来引用它,但是 CPU 不需要这个名称,它只关心内存地址。

所以我猜,如果你需要这些字符串,你会以某种方式将内存中的特定对象和用于引用它的临时句柄混为一谈,这可能不是你的意图。


推荐阅读