类返回的默认值

时间:2013-02-04 22:00:05

标签: c# wpf class properties tostring

我在c#中创建了一个小型自定义类来存储扑克牌的数据:

public class Card
    {
        public string suit { get; set; }
        public int number { get; set; }
        public string val
        {
            get
            {
                return number+" of "+suit;
            }
        }
    }

如果a有Card类型的变量,并且只打印card.toString(),它将打印命名空间,窗口名称和类名。有没有办法只通过引用val打印出card的值?

3 个答案:

答案 0 :(得分:2)

使用override关键字。

public override string ToString()
{
    return number+" of "+suit;
}

答案 1 :(得分:1)

是的,您只需要覆盖ToString()方法(来自Object)。

public override string ToString()
{
    return val;
}

这也是您在检查对象时在Visual Studio调试器中看到的默认值。

由于这种重载,一些方法(如String.FormatConsole.WriteConsole.WriteLine,...)将使用这个新的字符串表示,而无需自己调用ToString。

Console.WriteLine(card);

相当于:

Console.WriteLine(card.ToString());

这将等同于(在覆盖之后):

Console.WriteLine(card.val);

答案 2 :(得分:0)

public class Card
{
    public string suit { get; set; }
    public int number { get; set; }
    public string val
    {
        get
        {
            return number+" of "+suit;
        }
    }

    public override string ToString()
    {
        return val;
    }


}