如何在 class c# 中使用对象名称
How to Use the objects name in a class c#
在这种情况下我想打印
m2k:
salt:2
技能:
有办法吗?
以某种方式获取我们正在使用的对象的名称
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);
SmashPlayer m2k_again = m2k;
两个变量,但是是class的同一个实例,变量名应该写什么? m2k 或 m2k_again ?
查看启示录的答案以获得可能的解决方案。
在这种情况下我想打印
m2k:
salt:2
技能:
有办法吗?
以某种方式获取我们正在使用的对象的名称
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);
SmashPlayer m2k_again = m2k;
两个变量,但是是class的同一个实例,变量名应该写什么? m2k 或 m2k_again ?
查看启示录的答案以获得可能的解决方案。