(1)回答你的标题:不能,只能扩展方法。(2)回答你的内容:这个想法不对,从OO的角度讲,string对象为什么要有一个颜色的属性?如果你说“我打的字在屏幕上,是一个string,它就是有颜色的”,其实你看到的“黑色的string”,只是一个string的展示方式(展示器)而已,string只是包含它要展示的数据,数据是不需要有颜色的。如果你是想在显示某个string的时候(比如输出到Console)有各种颜色,那么你应该自己写一个类,比如:
class ConsoleStringDisplayer
{
public string Text { get; set; }
public ConsoleColor Color { get; set; }
public void Display()
{
var currentColor = Console.ForegroundColor;
Console.ForegroundColor = Color;
Console.WriteLine(Text);
Console.ForegroundColor = currentColor;
}
}
//现在我想在Console里输出一个绿色的hello world
var displayer = new ConsoleStringDisplayer
{
Text = "hello world",
Color = ConsoleColor.Green
};
displayer.Display();
这个好像不行,如果类定义成partial型可以扩展,你可以考虑用扩展方法
string是数据,Color是string在显示设备上的表现,也就是这个color不仅仅是string的属性,还跟设备相关,所以,也就是color不应该是string的属性