【问题标题】:Get two dimensional array's name into string [duplicate]将二维数组的名称转换为字符串[重复]
【发布时间】:2019-02-17 09:25:15
【问题描述】:

我有几个二维数组,名称类似于

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

等等

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

methodName(string arrayName);

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

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

【问题讨论】:

  • nameof 也许?
  • 你可以使用nameof(s914)
  • 感谢您的回答,但我不能在 C# 4.0 中使用 nameof
  • 为什么你认为你被限制在 C# 4.0 (这是 9 岁,在 VS 2010 中使用)?你的意思是.NET 4?还有什么?
  • 你在做什么需要名字?看起来它可能是XY problem

标签: c# c#-4.0


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2019-01-23
    • 2020-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-28
    • 1970-01-01
    相关资源
    最近更新 更多