c#中Console类的使用方法有哪些?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#中Console类的使用方法有哪些?相关的知识,希望对你有一定的参考价值。

编译c#程序时,提示Console应该使用get或set,而且Console作为关键字在代码中字体颜色应该是天蓝色,但是这个地方还是黑色的,其他地方的Console都是天蓝色的,不知道是什么原因?
using System在程序的第一句已经有了

请确保您的项目类型是Console的类型.并保证您的基本代码无语法错误

Console.Write 表示向控制台直接写入字符串,不进行换行,可继续接着前面的字符写入。
Console.WriteLine 表示向控制台写入字符串后换行。
Console.Read 表示从控制台读取字符串,不换行。
Console.ReadLine 表示从控制台读取字符串后进行换行。
Console.ReadKey 获取用户按下的下一个字符或功能键,按下的键显示在控制台窗口中。
Console.Beep 通过控制台扬声器播放提示音。
Console.Clear 清除控制台缓冲区和相应的控制台窗口的显示信息。
输出到控制台
输出到控制台就是把数据输出到控制台并显示出来。.Net框架提供了console类实现这个任务,输出方式如下:
Console.WriteLine();
Console.Write();
Console.WriteLine(输出的值);
Console.Write(输出的值);
Console.WriteLine("输出的格式字符串",变量列表);
Console.Write("输出的格式字符串",变量列表);
Console.WrietLine()和Console.Write()的唯一却别就是前者输出后换行,后者不换行。
Console.WriteLine("鹿鼎记中0的妻子有1,2,3等7个",strName[0],strName[1],strName
[2],strName3]);
这种方式中包含两个参数:“格式字符串”和变量列表。“鹿鼎记中0的妻子有1,2,3等7个”这是格式字符串,0、1、2、3叫做占位符,代表后面依次排列的变量表,0对应变量列表的第一个变量,1对应变量列表的第2个变量,依次类推,完成输出。
从控制台输入
Console类提供的输入方法:
Console.ReadLine();
这一句代码返回一个字符串型数据,可以把它直接赋值给字符串变量,如:
string strname=Console.ReadLine();
有时需要从控制台输入数字,就用到前面介绍的内容,数据转换,如:
int num=int.Pares(Console.ReadLine());
int num=Convert.ToInt32(Console.ReadLine());
上面两句代码效果相同,可以根据自己的习惯选择任意一种。

注意:

Console.ReadLine()和Console.Read()的输入结果完全不同,不能混用。
Console.Read(),返回值为首字符的ASCII码
Console.ReadLine(),返回值为字符串
也就是说read方法只能读取第一个字符,而ReadLine能读多个字符也可以换行读取
参考技术A 估计是没有引入 System这个命名空间,关于Console类的一个使用方法,请参考这篇文章:
http://www.biye5u.com/article/Csharp/jichu/2010/1982.html

参考资料:http://www.biye5u.com/article/Csharp/jichu/2010/1982.html

参考技术B 没有引入System命名空间。using System; 参考技术C 是不是哪个地方多写了标点符号之类的

http://www.baiduhl.com/z/2016/02/13/830.html
参考技术D 第一次听说Console是关键字

通过 UDP 的 C++ 类在 C# 中使用,都有哪些选项?

【中文标题】通过 UDP 的 C++ 类在 C# 中使用,都有哪些选项?【英文标题】:C++ class via UDP to be used in C#, what are the options?通过 UDP 的 C++ 类在 C# 中使用,有哪些选项? 【发布时间】:2017-09-05 10:07:36 【问题描述】:

我正在通过 UDP 从 C/C++ 应用程序接收数据。此应用程序正在将类的 memcpy 放入缓冲区并将其扔给我们。我们的应用程序是用 C# 编写的,我需要以某种方式理解数据。我们可以访问结构的头文件——一切基本上都是结构或枚举。我们无法更改数据传入的格式,并且头文件可能会经常更改。

我考虑过用 C++ 重写我们的 comms 类来接收数据,然后我可以更好地控制它的序列化,但这需要很长时间,而且我的 C++ 已经生锈了,更不用说我没有有很多 C++ 线程方面的经验,这是必需的。

我还创建了一些原型 C++ 库,其中提供了可通过 C# 访问的头文件,但我无法完全理解如何在 C# 本身中实际创建和使用类的实际实例(每个当我研究这个时,我看到的只是外部函数调用,而不是外部类型的使用)。

我也研究了编组。但是,由于数据可能会经常变化,我认为这是不得已而为之的方法,而且感觉很手动。

有没有人知道任何选项或对此问题有任何更有针对性的阅读或建议?

【问题讨论】:

"memcpy of the class" 长什么样子?它是否包含元信息或任何可以这样使用的东西? 如果你调用一个非托管 dll 的函数,它返回一个自定义格式的对象,你需要在 C# 中重建这个格式/对象(例如作为结构)并将对象转换成那个。 遗憾的是没有元数据。 @Noren,我有一个 C# 版本的 C++ 对象,我目前不确定如何进行实际的重建和转换。 【参考方案1】:

为什么不在每一端都使用 Google 协议缓冲区,即 c++ 和 c#。您将使用您的 c++ 定义,让 PB 为您完成所有序列化。

协议缓冲区是 Google 用于序列化结构化数据的语言中立、平台中立、可扩展的机制——想想 XML,但更小、更快、更简单。您只需定义一次数据的结构化方式,然后就可以使用特殊生成的源代码轻松地将结构化数据写入和读取各种数据流,并使用各种语言。 more...

即使在原始类型对话通常会出现问题的情况下,它也适用于不同的操作系统。

【讨论】:

谢谢,我会仔细看看这个以供将来参考但是,发送数据的 C++ 进程无法修改,并且数据被广播到的不仅仅是我的设备,所以它会还需要在所有客户端上更改代码,目前这是不可能的。所有其他客户端都是 C++,可以简单地 memcpy。 @user3103055 好的。编组可能是您最好的选择,无论您是手工制作还是编写工具从 c++ 结构自动生成 c# 定义

以上是关于c#中Console类的使用方法有哪些?的主要内容,如果未能解决你的问题,请参考以下文章

C# 中类的成员有哪些?

C#实例化内存分配问题

c#类的修饰符都有哪些?

通过 UDP 的 C++ 类在 C# 中使用,都有哪些选项?

C#基础学习随笔记

c#中object的用法