c# - 如何在 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);
}
但是没有找到任何方法这样做。
解决方案
如果你想在你的对象实例中使用变量名,那是不可能的,也不是一个好主意。您可以在代码中的不同位置使用对象实例,其中变量可能以不同的方式命名(或者根本不像 Corak指出的那样命名),因此没有可用的单一名称,因此无法创建一致的逻辑。
它还会在您的程序逻辑和呈现给用户的字符串之间创建依赖关系 - 这可能会导致更多问题,例如,如果您的名称需要包含空格,如果您想使用不同于编码约定的小写或大写,如果您愿意将名称翻译成不同的语言。
因此,出于充分的理由,您想要实现的目标是不可能的。