C# 如何在控制台中为不同颜色的单词着色。控制台应用程序中的WriteLine?
我的代码的最后一句是一个C# 如何在控制台中为不同颜色的单词着色。控制台应用程序中的WriteLine?,c#,C#,我的代码的最后一句是一个控制台。WriteLine带有一个变量。我希望“之间的文本为绿色,变量为红色 我一直在尝试使用Console.Foregroundcolor,但没有成功 Console.WriteLine("What is your name?"); string name = Console.ReadLine(); Console.WriteLine("Your name is {0}.", name); Console.ReadKey(); 不能在一个控制台中使用不同的颜色。Wri
控制台。WriteLine
带有一个变量。我希望“
之间的文本为绿色,变量为红色
我一直在尝试使用Console.Foregroundcolor
,但没有成功
Console.WriteLine("What is your name?");
string name = Console.ReadLine();
Console.WriteLine("Your name is {0}.", name);
Console.ReadKey();
不能在一个
控制台中使用不同的颜色。WriteLine()
-请改用控制台。Write()
Console.WriteLine("What is your name?");
string name = Console.ReadLine();
Console.ForegroundColor = ConsoleColor.Green;
Console.Write("Your name is ");
Console.ForegroundColor = ConsoleColor.Red;
Console.Write("name");
Console.WriteLine(); //linebreak
Console.ResetColor(); //reset to default values
不能在一个
控制台中使用不同的颜色。WriteLine()
-请改用控制台。Write()
Console.WriteLine("What is your name?");
string name = Console.ReadLine();
Console.ForegroundColor = ConsoleColor.Green;
Console.Write("Your name is ");
Console.ForegroundColor = ConsoleColor.Red;
Console.Write("name");
Console.WriteLine(); //linebreak
Console.ResetColor(); //reset to default values
如果您想对控制台上的每个文本使用不同的颜色,您应该在控制台中的每个输入和输出之前编写console.backgroundColor和console.ForeGroundColor。例如:
Console.BackgroundColor = ConsoleColor.Yellow;
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("Enter your name:");
string name = Console.ReadLine();
Console.BackgroundColor = ConsoleColor.Green;
Console.ForegroundColor = ConsoleColor.Yellow;
Console.WriteLine("Hello, " + name);
Console.ReadKey();
如果您想对控制台上的每个文本使用不同的颜色,您应该在控制台中的每个输入和输出之前编写console.backgroundColor和console.ForeGroundColor。例如:
Console.BackgroundColor = ConsoleColor.Yellow;
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("Enter your name:");
string name = Console.ReadLine();
Console.BackgroundColor = ConsoleColor.Green;
Console.ForegroundColor = ConsoleColor.Yellow;
Console.WriteLine("Hello, " + name);
Console.ReadKey();
您可以为此创建一个方法:
public void ColoredConsoleWrite(ConsoleColor firstColor, string firstText, ConsoleColor secondColor, string secondText)
{
Console.ForegroundColor = firstColor;
Console.Write(firstText);
Console.ForegroundColor = secondColor;
Console.WriteLine(secondText);
}
以后再这样称呼它:
ColoredConsoleWrite(ConsoleColor.Green, "Your name is ", ConsoleColor.Red, name);
您可以为此创建一个方法:
public void ColoredConsoleWrite(ConsoleColor firstColor, string firstText, ConsoleColor secondColor, string secondText)
{
Console.ForegroundColor = firstColor;
Console.Write(firstText);
Console.ForegroundColor = secondColor;
Console.WriteLine(secondText);
}
以后再这样称呼它:
ColoredConsoleWrite(ConsoleColor.Green, "Your name is ", ConsoleColor.Red, name);
对Currapickt的回答稍加改进:
public void Write(params object[] oo)
{
foreach(var o in oo)
if(o == null)
Console.ResetColor();
else if(o is ConsoleColor)
Console.ForegroundColor = o as ConsoleColor;
else
Console.Write(o.ToString());
}
现在,您可以混合任意数量的文字和颜色:
Write("how about ", ConsoleColor.Red, "red", null, " text or how about ", ConsoleColor.Green, "green", null, " text");
使用null将颜色恢复为默认值
或者我们构建一个解析器怎么样:
public void Write(string msg)
{
string[] ss = msg.Split('{','}');
ConsoleColor c;
foreach(var s in ss)
if(s.StartsWith("/"))
Console.ResetColor();
else if(s.StartsWith("=") && Enum.TryParse(s.Substring(1), out c))
Console.ForegroundColor = c;
else
Console.Write(s);
}
我们可以使用如下方法:
Write("how about {=Red}this in red{/} or this in {=Green}green{/} eh?");
我们应该收拾一下。这是一个非常简单、不复杂的解析器,如果字符串中包含{或},则需要对其进行改进,例如对CurraPickt的答案稍加改进:
public void Write(params object[] oo)
{
foreach(var o in oo)
if(o == null)
Console.ResetColor();
else if(o is ConsoleColor)
Console.ForegroundColor = o as ConsoleColor;
else
Console.Write(o.ToString());
}
现在,您可以混合任意数量的文字和颜色:
Write("how about ", ConsoleColor.Red, "red", null, " text or how about ", ConsoleColor.Green, "green", null, " text");
使用null将颜色恢复为默认值
或者我们构建一个解析器怎么样:
public void Write(string msg)
{
string[] ss = msg.Split('{','}');
ConsoleColor c;
foreach(var s in ss)
if(s.StartsWith("/"))
Console.ResetColor();
else if(s.StartsWith("=") && Enum.TryParse(s.Substring(1), out c))
Console.ForegroundColor = c;
else
Console.Write(s);
}
我们可以使用如下方法:
Write("how about {=Red}this in red{/} or this in {=Green}green{/} eh?");
我们应该收拾一下。不过,它是一个非常简单、不复杂的解析器,例如,如果字符串包含{或},则需要对其进行改进