C# 如何为我的播放器对象实现ToString()?
我想让我的C# 如何为我的播放器对象实现ToString()?,c#,tostring,C#,Tostring,我想让我的Player.ToString()方法获得带有分数的名称 然后打印出来。但它不想打印出这个人的总分 class Player { public string Name { get; set; } public List<Arrows> trow = new List<Arrows>(); public Player(string name = "") { Name = name; } public
Player.ToString()
方法获得带有分数的名称
然后打印出来。但它不想打印出这个人的总分
class Player
{
public string Name { get; set; }
public List<Arrows> trow = new List<Arrows>();
public Player(string name = "")
{
Name = name;
}
public override string ToString()
{
return Name;
}
}
如果我理解正确,您只需将
ToString()
方法更改为如下所示:
public override string ToString()
{
return string.Format("Din totala summa är {0}{1}", Name, GetScore());
}
public override string ToString()
{
return string.Format("Din totala summa är {0}{1}", Name, trow.Sum(a => a.GetScore()));
}
现在,也就是说,你可能还有一些其他的问题。Arrows
类似乎不太可能继承Player
类。继承意味着“是一种”关系。也就是说,您的代码表示一组箭头是一个玩家。我想在某些特定的游戏中这可能是真的,但这是一个非常不寻常的设计,看起来不像你真正想要的
另一方面,你的Player
类已经有了一个Arrows
对象列表(我更加怀疑你的Arrows
类不应该继承Player
…如果Arrows
确实是Player
,为什么Player
会有一个列表?)
不幸的是,没有足够的信息来知道你在这里真正想做什么。您可能只需要更改Player
类中的ToString()
方法,例如:
public override string ToString()
{
return string.Format("Din totala summa är {0}{1}", Name, trow.Count);
}
或者像这样:
public override string ToString()
{
return string.Format("Din totala summa är {0}{1}", Name, GetScore());
}
public override string ToString()
{
return string.Format("Din totala summa är {0}{1}", Name, trow.Sum(a => a.GetScore()));
}
但是我真的不能确定。我假设是您的arrows类中的
ToString
调用。如果是这种情况,您只在ToString
中的string.Format
方法中添加了一个值,请最小化您在此处发布的代码。我建议创建一个main方法来创建一个Player对象并输出Player.ToString()。达伦:是的,你是对的,对不起,问题出在解释不好的地方。是的,这就是问题所在。我要测试箭头,如下所示:return string.Format(“Din totala summaär{0}{1}”,Name,Arrows);然后我得到一个错误类型,就像一个可验证的。托马斯:你能告诉我你的意思吗?我编辑了你的问题,试图用正确的英语表达我认为你想表达的意思。请尽可能地复习,确保我没有改变你的意图(我意识到对于非母语人士来说,这可能很难确定,但至少看一看)。