Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何为我的播放器对象实现ToString()?_C#_Tostring - Fatal编程技术网

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);然后我得到一个错误类型,就像一个可验证的。托马斯:你能告诉我你的意思吗?我编辑了你的问题,试图用正确的英语表达我认为你想表达的意思。请尽可能地复习,确保我没有改变你的意图(我意识到对于非母语人士来说,这可能很难确定,但至少看一看)。