2

トランプのデータを格納するために、c# で小さなカスタム クラスを作成しました。

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

a に type の変数があり、 を出力した場合Cardcard.toString()名前空間、ウィンドウ名、およびクラス名が出力されます。val参照するだけで値を出力する方法はありますcardか?

4

3 に答える 3

2

overrideキーワードを使用します。

public override string ToString()
{
    return number+" of "+suit;
}
于 2013-02-04T22:01:08.457 に答える
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);
于 2013-02-04T22:01:22.197 に答える
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;
    }


}
于 2013-02-04T22:01:39.093 に答える