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";
}
}
呈现为:
为什么会有差异?
编辑:我知道为什么不同。我的问题是,如何在不对颜色文本进行硬编码的情况下实现第二个结果。
答案 0 :(得分:3)
第一个方法隐式调用ToString
个实例上的Color
,而第二个方法只是返回一个字符串。
编辑:我不确定,但我认为它是自动完成的。否则,查看ToKnownColor
方法,它会返回KnownColor
枚举,您可以使用它来构造具有所需行为的颜色。但是,您应该知道每种颜色都没有名称。
答案 1 :(得分:2)
试试这个:
return ColorA.Name + " " + ColorB.Name;
答案 2 :(得分:0)
因为那显示了你的ToString()结果。
第一个调用Color.Red.ToString(),它给出'Color [Red]',然后是Color.Black.ToString()。
答案 3 :(得分:0)
在第一个实例中,正在调用Color类的ToString()方法(给出Color [ColorName]输出)。