热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

c#–控制台:超出缓冲区时背景颜色填充行

我正在以不同的颜色打印到Windows控制台进行测试,并随机设置文本和背景颜色.当行超出控制台缓冲区时,背景颜色将设置为整行.这是C#中的一个例子:staticvoidMain(S

我正在以不同的颜色打印到Windows控制台进行测试,并随机设置文本和背景颜色.当行超出控制台缓冲区时,背景颜色将设置为整行.这是C#中的一个例子:

static void Main( String[] args )
{
Console.BufferHeight = 16;
foreach( var i in Enumerable.Range( 0 , Console.BufferHeight + 3 ) )
{
var fgColor = Console.ForegroundColor;
var bgColor = Console.BackgroundColor;
var tst = i % 2 == 0;
Console.ForegroundColor = tst ? ConsoleColor.White : ConsoleColor.Black;
Console.BackgroundColor = tst ? ConsoleColor.Black : ConsoleColor.Yellow;
Console.WriteLine( $"{i} HELLO WORLD" );
Console.ForegroundColor = fgColor;
Console.BackgroundColor = bgColor;
}
Console.ReadLine();
}

enter image description here

我已经将缓冲区设置为其最大缓冲区大小(16位),但此应用程序将在未来打印数百万行.

有没有修复?

解决方法:


I already set the buffer to its max buffer size (16 bit), but this application will print several million lines in the future.


那么我认为你的意思是Int16.MaxValue而不是16.

无论如何,要解决您的问题,只需在写行结束字符之前恢复颜色:

foreach (var i in Enumerable.Range(0, Console.BufferHeight + 3))
{
var fgColor = Console.ForegroundColor;
var bgColor = Console.BackgroundColor;
var tst = i % 2 == 0;
Console.ForegroundColor = tst ? ConsoleColor.White : ConsoleColor.Black;
Console.BackgroundColor = tst ? ConsoleColor.Black : ConsoleColor.Yellow;
Console.Write($"{i} HELLO WORLD");
Console.ForegroundColor = fgColor;
Console.BackgroundColor = bgColor;
Console.WriteLine();
}


推荐阅读
  • D17:C#设计模式之十六观察者模式(Observer Pattern)【行为型】
    一、引言今天是2017年11月份的最后一天,也就是2017年11月30日,利用今天再写一个模式,争取下个月(也就是12月份& ... [详细]
  • 本报告记录了嵌入式软件设计课程中的第二次实验,主要探讨了使用KEIL V5开发环境和ST固件库进行GPIO控制及按键响应编程的方法。通过实际操作,加深了对嵌入式系统硬件接口编程的理解。 ... [详细]
  • Java虚拟机及其发展历程
    Java虚拟机(JVM)是每个Java开发者日常工作中不可或缺的一部分,但其背后的运作机制却往往显得神秘莫测。本文将探讨Java及其虚拟机的发展历程,帮助读者深入了解这一关键技术。 ... [详细]
  • 本文详细介绍了 `org.apache.tinkerpop.gremlin.structure.VertexProperty` 类中的 `key()` 方法,并提供了多个实际应用的代码示例。通过这些示例,读者可以更好地理解该方法在图数据库操作中的具体用途。 ... [详细]
  • 二维码的实现与应用
    本文介绍了二维码的基本概念、分类及其优缺点,并详细描述了如何使用Java编程语言结合第三方库(如ZXing和qrcode.jar)来实现二维码的生成与解析。 ... [详细]
  • 问题描述现在,不管开发一个多大的系统(至少我现在的部门是这样的),都会带一个日志功能;在实际开发过程中 ... [详细]
  • 编码unicode解决了语言不通的问题.但是.unicode又有一个新问题.由于unicode是万国码.把所有国家的文字都编进去了.这就导致一个unicode占用的空间会很大.原来 ... [详细]
  • 本文基于Java官方文档进行了适当修改,旨在介绍如何实现一个能够同时处理多个客户端请求的服务端程序。在前文中,我们探讨了单客户端访问的服务端实现,而本篇将深入讲解多客户端环境下的服务端设计与实现。 ... [详细]
  • 探讨 try-finally 结构中 finally 块的执行情况
    本文深入分析了 Java 中 try-finally 结构的执行机制,特别是探讨了在不同情况下 finally 块是否会得到执行。 ... [详细]
  • 本文详细介绍了如何使用C#实现不同类型的系统服务账户(如Windows服务、计划任务和IIS应用池)的密码重置方法。 ... [详细]
  • 1、编写一个Java程序在屏幕上输出“你好!”。programmenameHelloworld.javapublicclassHelloworld{publicst ... [详细]
  • 深入理解线程池及其基本实现
    本文探讨了线程池的概念、优势及其在Java中的应用。通过实例分析不同类型的线程池,并指导如何构建一个简易的线程池。 ... [详细]
  • 尽管在WPF中工作了一段时间,但在菜单控件的样式设置上遇到了一些基础问题,特别是关于如何正确配置前景色和背景色。 ... [详细]
  • 想把一组chara[4096]的数组拷贝到shortb[6][256]中,尝试过用循环移位的方式,还用中间变量shortc[2048]的方式。得出的结论:1.移位方式效率最低2. ... [详细]
  • 网络流24题——试题库问题
    题目描述:假设一个试题库中有n道试题。每道试题都标明了所属类别。同一道题可能有多个类别属性。现要从题库中抽取m道题组成试卷。并要求试卷包含指定类型的试题。试设计一个满足要求的组卷算 ... [详细]
author-avatar
Eva---LiuJ
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有