![](/img/trans.png)
[英]Can't type certain square brackets in Visual Studio 2010 + Resharper
[英]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.