簡體   English   中英

DebuggerDisplay-在方括號中鍵入

[英]DebuggerDisplay - type in square brackets

class A
{
    public Color ColorA { get; set; }
    public Color ColorB { get; set; }

    public A(Color colorA, Color colorB)
    {
        ColorA = colorA;
        ColorB = colorB;
    }

    public override string ToString()
    {
        return ColorA + " " + ColorB;
    }
}

呈現為:

在此處輸入圖片說明


和這個:

class A
{
    public Color ColorA { get; set; }
    public Color ColorB { get; set; }

    public A(Color colorA, Color colorB)
    {
        ColorA = colorA;
        ColorB = colorB;
    }

    public override string ToString()
    {
        return "Red" + " " + "Black";
    }
}

呈現為:

在此處輸入圖片說明

為什么會有所不同?

編輯:我知道為什么不同。 我的問題是,如何在不對顏色文本進行硬編碼的情況下獲得第二個結果。

第一個方法在Color實例上隱式調用ToString ,而第二個方法只是您返回一個字符串。

編輯:我不確定,但是我認為它是自動完成的。 否則,請查看ToKnownColor方法,該方法將返回KnownColor枚舉,您可以使用該枚舉構造具有所需行為的顏色。 但是,您應該意識到以下事實:每種顏色都不會有名稱。

嘗試這個:

return ColorA.Name + " " + ColorB.Name;

因為那是顯示您的ToString()結果。

第一個調用Color.Red.ToString(),它給出'Color [Red]',然后是Color.Black.ToString()。

在第一個實例中,將調用Color類的ToString()方法(給出Color [ColorName]輸出)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM