C# 如何在类c中使用对象名称#
在这种情况下,我想打印 m2k: 盐:2 技能: 有办法做到这一点吗?C# 如何在类c中使用对象名称#,c#,class,object,instance,C#,Class,Object,Instance,在这种情况下,我想打印 m2k: 盐:2 技能: 有办法做到这一点吗? 以某种方式获取我们正在使用的对象的名称 namespace practice { class SmashPlayer { private int salt, skill; public SmashPlayer(int salt, int skill) { this.salt = salt; this.skill = skill; } public void pr
以某种方式获取我们正在使用的对象的名称
namespace practice
{
class SmashPlayer
{
private int salt, skill;
public SmashPlayer(int salt, int skill)
{
this.salt = salt;
this.skill = skill;
}
public void print()
{
Console.WriteLine("{0}'s\nsalt:{1}\nskill:{2}",Name of object,salt,skill);
}
}
class Program
{
public static void Main(string[] arg)
{
SmashPlayer m2k = new SmashPlayer(2,5);
m2k.print();
}
}
}
你不能那样做。您需要将字符串传递给构造函数
SmashPlayer m2k = new SmashPlayer (2, 5, "m2k");
当然,您需要向该构造函数添加新参数,并将其保存在实例字段中
为了避免重构问题,可以使用nameof
操作符
SmashPlayer m2k = new SmashPlayer (2, 5, nameof (m2k));
你不能那样做。您需要将字符串传递给构造函数
SmashPlayer m2k = new SmashPlayer (2, 5, "m2k");
当然,您需要向该构造函数添加新参数,并将其保存在实例字段中
为了避免重构问题,可以使用nameof
操作符
SmashPlayer m2k = new SmashPlayer (2, 5, nameof (m2k));
这真的不可能。
简单的例子:
SmashPlayer m2k = new SmashPlayer(2,5);
SmashPlayer m2k_again = m2k;
两个变量,但它是类的同一个实例,您应该写什么作为变量名?又是m2k还是m2k_
看看《启示录》的答案,寻找一个可能的解决办法。
这真的不可能。
简单的例子:
SmashPlayer m2k = new SmashPlayer(2,5);
SmashPlayer m2k_again = m2k;
两个变量,但它是类的同一个实例,您应该写什么作为变量名?又是m2k还是m2k_
看看《启示录》的答案,寻找一个可能的解决办法。
为您提供了一些选项,以实现您的要求。请注意,通常您不会对任何可以显示给用户的内容使用变量名-根据您的实际目标,有更传统的解决方案(从添加
name
property开始)。为您提供一些选项,以实现您的要求。请注意,通常您不会对任何可以显示给用户的内容使用变量名-根据您的实际目标,有更传统的解决方案(从添加name
property开始)。什么是重构问题?@SuperMinefudge:例如,当您将m2k
变量重命名为newName
时,您将忘记更新传递给构造函数的“m2k”字符串。但是如果你使用nameof
操作符,重构工具会意识到这一点,并将nameof(m2k)
更改为nameof(newName)
。重构问题是什么?@SuperMinefudge:例如,当你将m2k
变量重命名为newName
时,你会忘记更新“m2k”传递给构造函数的字符串。但是如果您使用nameof
operator,重构工具将意识到这一点,并将nameof(m2k)
更改为nameof(newName)
。