C#在WinForm中打开控制台显示

引用:

 

namespace 测试使用
{public partial class Form1 : Form{[System.Runtime.InteropServices.DllImport("kernel32.dll", SetLastError = true)][return: System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.Bool)]static extern bool AllocConsole();[System.Runtime.InteropServices.DllImport("Kernel32")]public static extern void FreeConsole();public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){AllocConsole();   //开启控制台
        }}
}

 

输出一

通常的代码段: Console.WriteLine(“测试”);

效果显示:

 

 

输出二:

创建方法类来进行输出

           Shell.WriteLine("注意:启动程序...");
            Shell.WriteLine("\tWritten by wuming");
            Shell.WriteLine("{0}:{1}", "警告", "这是一条警告信息。");
            Shell.WriteLine("{0}:{1}", "错误", "这是一条错误信息!");
            Shell.WriteLine("{0}:{1}", "注意", "这是一条需要的注意信息。");
            Shell.WriteLine("");

           Shell.WriteLine("测试",ConsoleColor.DarkRed);

 

  static class Shell{/// <summary>  /// 输出信息  /// </summary>  /// <param name="format"></param>  /// <param name="args"></param>  public static void WriteLine(string message, ConsoleColor GetConsoleColor){Console.ForegroundColor = GetConsoleColor;Console.WriteLine(@"[{0}]{1}", DateTimeOffset.Now, message);}/// <summary>  /// 输出信息  /// </summary>  /// <param name="format"></param>  /// <param name="args"></param>  public static void WriteLine(string format, params object[] args){WriteLine(string.Format(format, args));}/// <summary>  /// 输出信息  /// </summary>  /// <param name="output"></param>  public static void WriteLine(string output){Console.ForegroundColor = GetConsoleColor(output);Console.WriteLine(@"[{0}]{1}", DateTimeOffset.Now, output);}/// <summary>  /// 根据输出文本选择控制台文字颜色  /// </summary>  /// <param name="output"></param>  /// <returns></returns>  private static ConsoleColor GetConsoleColor(string output){if (output.StartsWith("警告")) return ConsoleColor.Yellow;if (output.StartsWith("错误")) return ConsoleColor.Red;if (output.StartsWith("注意")) return ConsoleColor.Green;return ConsoleColor.Gray;}}  

 

效果显示:

 

转载于:https://www.cnblogs.com/FHL007/p/11115064.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/386537.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis+AQS

前言 对于java的单进程应用来说&#xff0c;存在资源竞争的场景可以使用synchronized关键字和Lock来对资源进行加锁&#xff0c;使整个操作具有原子性。但是对于多进程或者分布式的应用来说&#xff0c;上面提到的锁不共享&#xff0c;做不到互相通讯&#xff0c;所以就需要分…

Laravel 除了首页能正常访问,其它页面均404

在宝塔系统上通过一键源码配置laravel框架后&#xff0c;发现除了首页能够正常访问&#xff0c;其它的页面均返回的404&#xff0c;后经过比对已经网上查资料,发现是nginx的配置文件出了问题 1.找到配置文件 宝塔系统地址&#xff1a;/www/server/panel/vhost/nginx 2.在新建网…

disruptor 介绍

一、背景 1.来源 Disruptor是英国外汇交易公司LMAX开发的一个高性能队列&#xff0c;研发的初衷是解决内部的内存队列的延迟问题&#xff0c;而不是分布式队列。基于Disruptor开发的系统单线程能支撑每秒600万订单&#xff0c;2010年在QCon演讲后&#xff0c;获得了业界关注。…

算法题+JVM+自定义View,详细的Android学习指南

前言 想要成为一名优秀的Android开发&#xff0c;你需要一份完备的知识体系&#xff0c;在这里&#xff0c;让我们一起成长为自己所想的那样~。 学算法真的很痛苦&#xff0c;虽然大数据现在很火&#xff0c;但找到适合自己定位的职业也未尝不是一种合理选择。 投百度的经历非…

用过的前端插件合集

用过的前端插件合集 FontAwesome字体 Font Awesome详细用法参见上述站点的Examples。 SweetAlert系列 SweetAlertSweetAlert2SweetAlert 到 SweetAlert2 升级指南示例&#xff1a; 基本使用&#xff1a; swal("标题","内容","success);使用SweetAlert…

CAS和AQS

CAS 全称&#xff08;Compare And Swap&#xff09;,比较交换 Unsafe类是CAS的核心类&#xff0c;提供硬件级别的原子操作。 // 对象、对象的地址、预期值、修改值 public final native boolean compareAndSwapInt(Object var1, long var2, int var4, int var5);缺点&#xf…

系统盘点Android开发者必须掌握的知识点,全网疯传

最近在知乎上&#xff0c;有许多人在邀请我去回答“Android前景怎么样、是不是要凉了、是不是应该考虑要转行&#xff1f;”等一系列的问题。 想着可能有很多人都有这样的担心&#xff0c;于是就赶紧写篇文章&#xff0c;来跟你们谈下Android开发的前景到底怎么样&#xff1f;…

CountDownLatch的理解和使用 多线程同步器

CountDownLatch的理解和使用 在笔者想要了解Thrift时候&#xff0c;找到一个博主写的系统间通信技术的架构设计&#xff0c;在了解和学习的过程中遇到很多小问题和基础知识&#xff0c;自己还是不够清楚&#xff0c;就查询和总结下。 因为笔者也都是从网上找的一些资料&#…

数据库操作DDL

show database; 查看所有数据库 drop database db_name; 删除数据库 create database db_name;创建数据库 一个数据库对应一个文件夹 create database if not exists db_name; show warnings; 查看所有警告 show create databae db_name;查看创建的数据库 create database if n…

细数Android开发者的艰辛历程,已拿offer附真题解析

笼统来说&#xff0c;中年程序员容易被淘汰的原因其实不外乎三点。 1、输出能力已到顶点。这个人奋斗十来年了&#xff0c;依旧碌碌无为&#xff0c;很明显这人的天花板就这样了&#xff0c;说白了&#xff0c;天赋就这样。 2、适应能力越来越差。年纪大&#xff0c;有家庭&…

原子操作类AtomicInteger详解

为什么需要AtomicInteger原子操作类&#xff1f; 对于Java中的运算操作&#xff0c;例如自增或自减&#xff0c;若没有进行额外的同步操作&#xff0c;在多线程环境下就是线程不安全的。num解析为numnum1&#xff0c;明显&#xff0c;这个操作不具备原子性&#xff0c;多线程并…

移动端Rem之讲解总结

日妈常说的H5页面&#xff0c;为啥叫H5页面嘛&#xff0c;不就是手机上展示的页面吗&#xff1f;那是因为啊手机兼容所有html5新特性&#xff0c;所以跑在手机上的页面也叫h5页面&#xff0c;跨平台&#xff08;安装ios),基于webview&#xff0c;它就是终端开发的一个组件&…

终于有人把安卓程序员必学知识点全整理出来了,送大厂面经一份!

除了Bug&#xff0c;最让你头疼的问题是什么&#xff1f;单身&#xff1f;秃头&#xff1f;996?面试造火箭&#xff0c;工作拧螺丝&#xff1f; 作为安卓开发者&#xff0c;除了Bug&#xff0c;经常会碰到下面这些问题&#xff1a; 应用卡顿&#xff0c;丢帧&#xff0c;屏幕画…

ABA问题

CAS&#xff1a;对于内存中的某一个值V&#xff0c;提供一个旧值A和一个新值B。如果提供的旧值V和A相等就把B写入V。这个过程是原子性的。 CAS执行结果要么成功要么失败&#xff0c;对于失败的情形下一班采用不断重试。或者放弃。 ABA&#xff1a;如果另一个线程修改V值假设原…

mq引入以后的缺点

系统可用性降低? 一旦mq不能使用以后,系统A不能发送消息到mq,系统BCD无法从mq中获取到消息.整个系统就崩溃了. 如何解决: 系统复杂程度增加? 加入mq以后,mq引入来的问题很多,然后导致系统的复杂程度增加. 如何解决 系统的一致性降低? 有人给系统A发送了一个请求,本来这个请求…

网易云的朋友给我这份339页的Android面经,成功入职阿里

IT行业的前景 近几年来&#xff0c;大数据、人工智能AI、物联网等一些技术不断发展&#xff0c;也让人们看到了IT行业的繁荣与良好的前景。越来越多的高校学府加大了对计算机的投入&#xff0c;设立相应的热门专业来吸引招生。当然也有越来越多的人选择从事这个行业&#xff0…

AQS相关逻辑解析

关心QPS TPS 如何让线程停留在lock 1、竞争锁-(拿到锁的线程、没拿到锁的线程) 临界区的资源&#xff08;static redis 数据库变量 配置中心config zookeeper&#xff09;大家共享都可以获得的资源 临界区没拿到锁的未拿到锁线程进行停留 2、怎么让线程停留在Lock方法里 …

git介绍和常用操作

转载于:https://www.cnblogs.com/kesz/p/11124423.html

网易云的朋友给我这份339页的Android面经,满满干货指导

想要成为一名优秀的Android开发&#xff0c;你需要一份完备的知识体系&#xff0c;在这里&#xff0c;让我们一起成长为自己所想的那样~。 25%的面试官会在头5分钟内决定面试的结果60%的面试官会在头15分钟内决定面试的结果 一般来说&#xff0c;一场单面的时间在30分钟左右&…

synchronized 和Lock区别

synchronized实现原理 Java中每一个对象都可以作为锁&#xff0c;这是synchronized实现同步的基础&#xff1a; 普通同步方法&#xff0c;锁是当前实例对象静态同步方法&#xff0c;锁是当前类的class对象同步方法块&#xff0c;锁是括号里面的对象 当一个线程访问同步代码块…