我希望我的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;
}
}
class Arrows : Player
{
private int arrowOne;
private int arrowTwo;
private int arrowThree;
public Arrows(int arrowOne = 0, int arrowTwo = 0, int arrowThree = 0)
{
this.arrowOne = arrowOne;
this.arrowTwo = arrowTwo;
this.arrowThree = arrowThree;
}
public int GetScore()
{
return arrowOne + arrowTwo + arrowThree;
}
public override string ToString()
{
return string.Format("Din totala summa är {0}{1}", Name);
}
}
答案 0 :(得分:0)
如果我正确理解了这个问题,您只需将ToString()
方法更改为如下所示:
public override string ToString()
{
return string.Format("Din totala summa är {0}{1}", Name, GetScore());
}
现在,那说,你可能还有其他一些问题。 Arrows
类似乎不太可能继承Player
类。继承意味着&#34;是一个&#34;关系。即你的代码说一组箭头是玩家。我想在一些特定的游戏中可能是真的,但它是一个非常不寻常的设计,并不像你真正想要的那样。
另一方面,您的Player
课程已有Arrows
个对象列表(这加强了我怀疑您的Arrows
课程不应该继承Player
...如果Arrows
确实是 Player
,为什么Player
会列出它们?)。
不幸的是,没有足够的信息来了解你真正打算做什么。您可能只需更改ToString()
类中的Player
方法,例如类似的东西:
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, trow.Sum(a => a.GetScore()));
}
但我无法肯定地说。