我知道如何为控制台文字设置颜色
Console.ForegroundColor = ConsoleColor.Cyan;
任何人都可以想到我可以将它随机化吗?它不一定是完全随机的,但差异会有所帮助。
答案 0 :(得分:8)
private static Random _random = new Random();
private static ConsoleColor GetRandomConsoleColor()
{
var consoleColors = Enum.GetValues(typeof(ConsoleColor));
return (ConsoleColor)consoleColors.GetValue(_random.Next(consoleColors.Length));
}
private static void Main(string[] args)
{
Console.ForegroundColor = GetRandomConsoleColor();
Console.WriteLine("Hello World!");
}
一种简单而有效的方法是简单地从ConsoleColor枚举中选择一个随机值。
答案 1 :(得分:2)
Console.ForegroundColor=(ConsoleColor)r.Next(0,16);
Console.BackgroundColor = (ConsoleColor)r.Next(0,16);
选择背景或文字颜色中的一个,你必须将r声明为随机:
Random r = new Random();
或作为主要的静态。
以下是我使用上述代码编写的简单代码的示例:
while (true)
{
Console.ForegroundColor = (ConsoleColor)r.Next(0,16);
Console.BackgroundColor = (ConsoleColor)r.Next(0,16);
Console.Write(r.Next(0, 2));
}
它基本上以不同的文字颜色和背景颜色打印0和1。
答案 2 :(得分:0)
ConsoleColor getRandomColor()
{
return (ConsoleColor)(new Random().Next(Enum.GetNames(typeof(ConsoleColor)).Length)
}
编辑:正如我的评论者所说,每次需要新的随机颜色时,都不应构建new Random
。相反,你应该将Random
保存在某个地方,并且应该像这样使用它:
Random rand = new Random();
ConsoleColor getRandomColor()
{
return (ConsoleColor)(rand.Next(Enum.GetNames(typeof(ConsoleColor)).Length);
}
答案 3 :(得分:0)
你走了。
private static void Main(string[] args)
{
Random random = new Random();
var query =
typeof(ConsoleColor)
.GetFields(BindingFlags.Static | BindingFlags.Public)
.Select(fieldInfo => (ConsoleColor)fieldInfo.GetValue(null))
.ToArray();
Console.BackgroundColor = query.ElementAt(random.Next(query.Length));
Console.WriteLine(Console.BackgroundColor);
Console.Read();
}
答案 4 :(得分:0)
最简单的方法:
(ConsoleColor)(new Random()).Next(0,15)
返回ConsoleColor对象。
提示:
如果要限制颜色,请尝试使用!=运算符并在Visual Studio中检出ConsoleColor Enum。
答案 5 :(得分:0)
这将选择随机颜色。请注意,_random
是Random
的实例。
Console.ForegroundColor = (ConsoleColor)_random.Next(15);