首页 > 解决方案 > 如何在 C# 中引用对象的名称

问题描述

是否可以在 C# 中引用对象的名称以避免复制无用的代码,例如

public static void Main (string[] Args)
{
     Champion aatrox = new Champion("Aatrox"); 
     Champion ahri   = new Champion("Ahri"); 
     // and so on ...
}

一直在寻找看起来像的东西

class Champion 
{
    public string Name { get; set; }         
    public Champion () => Name = nameOf(this);
}

但是没有找到任何方法这样做。

标签: c#.net

解决方案


如果你想在你的对象实例中使用变量名,那是不可能的,也不是一个好主意。您可以在代码中的不同位置使用对象实例,其中变量可能以不同的方式命名(或者根本不像 Corak指出的那样命名),因此没有可用的单一名称,因此无法创建一致的逻辑。

它还会在您的程序逻辑和呈现给用户的字符串之间创建依赖关系 - 这可能会导致更多问题,例如,如果您的名称需要包含空格,如果您想使用不同于编码约定的小写或大写,如果您愿意将名称翻译成不同的语言。

因此,出于充分的理由,您想要实现的目标是不可能的。


推荐阅读