C# 将二维数组的名称转换为字符串
我有几个二维数组,名称如下C# 将二维数组的名称转换为字符串,c#,c#-4.0,C#,C# 4.0,我有几个二维数组,名称如下 object[,] s1l2 object[,] s3l4 object[,] s4l2 object[,] s9l4 等等 在另一个类中,我有一个方法必须将该数组名作为字符串变量获取,如: methodName(string arrayName); 我试着用s9l4.ToString;但显然,返回系统.Object[,] 所以,问题是-我如何才能将对象[,]s9l4作为字符串-s9l4我觉得我不必回答你明确的问题,而是挑战前提,要求你修改你对对象和变量的理解。以
object[,] s1l2
object[,] s3l4
object[,] s4l2
object[,] s9l4
等等
在另一个类中,我有一个方法必须将该数组名作为字符串变量获取,如:
methodName(string arrayName);
我试着用s9l4.ToString;但显然,返回系统.Object[,]
所以,问题是-我如何才能将对象[,]s9l4作为字符串-s9l4我觉得我不必回答你明确的问题,而是挑战前提,要求你修改你对对象和变量的理解。以这个片段为例:
object[,] s3l4 = new object[0,0];
object[,] s4l2 = s3l4;
在本例中,您有一个对象(第一行中的初始化数组),但有两个变量都指向它。在本例中,该数组的名称是什么?s3l4还是s4l2?答案是两者都不是,因为这两个字符串都引用方法中的变量名,即引用内存中对象的本地名。编译后,这些名称通常会消失——它们被您和您的代码用来引用,但CPU不需要这个名称,它只关心内存地址
所以我猜,如果你需要这些字符串,你可能在某种程度上混淆了内存中的特定对象和用来引用它的特殊句柄,这可能不是你的意图。nameof也许?你可以用nameofS914作为答案,但是我不能在C4.0中使用nameof,为什么你认为你被限制在9年前的C4.0中,并在VS2010中使用?你是说.NET4吗?还有什么?你在做什么需要名字?看起来这可能是一个潜在的问题。