深入浅出C#2008从入门到提高Step By Step(三)一个简单的控制台程序

老赵点滴:一个扎根真实场景的.NET技术博客成长范式 技术博客的本质,是将抽象框架还原为可验证、可复现、可落地的工程实践。从.NET Core的依赖注入生命周期,到System.Text.Json的序列化性能陷阱,再到Span<T>在内存分配中的实际影响——这些高频搜索的技术概念,其真正价值不在于语法掌握,而在于理解设计权衡与生产环境约束。当开发者面对EF Core批量插入变慢、HttpClient DNS超时或缓存命中率骤降等问题时,需要的不是零散答案,而是贯穿问题定位、根因分析、工具验证到方案闭环的完整判断链。'老赵点滴'所代表的,正是一种以可观测性为基底 阅读详情

作者:PeterXu  来源:Blog.优快云  Blog: http://blog.youkuaiyun.com/peterreg/
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。本文地址:http://blog.youkuaiyun.com/peterreg/archive/2008/04/10/2275206.aspx

接我的上一篇文章《C#基本概念》,下面我们来新建一个简单的控制台程序。 

新建“项目”,“控制台程序”,系统生成一个文件Program.cs,其中主要的是一个Main函数。
namespace TestConsole
{
    class Program
    {
        static void Main(string[] args)
        {
        }
    }
}
此时我们运行程序时,程序显示一个DOS窗口,并且一闪而过,因为我们的程序没有什么输出信息。

下面我们在Main函数中加入输出信息,我们在窗口中输出“Hello World!”
namespace TestConsole
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("Hello World!");
        }
    }
}
此时的程序运行时,显示了一行信息Hello world,但还是一闪而过,立刻运行结束。
因为程序只有一条语句,显示结束后即退出程序,如果我们想让程序停留片刻的话,有多种途径,下面采用的方法是读输入,从而使程序停下来。

namespace TestConsole
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("Hello World!");
            Console.ReadLine();
        }
    }
}

难点解析:

1. Program.cs 及Class Program
    VS2005开始,每一个控制台项目都默认建立一个Program文件,里面就一个类Program,这个类中默认一个Main函数,作为整个程序的入口函数,即程序启动时执行的第一个函数。同时也是程序退出时的函数,程序由这里启动,也是由这里退出。
     Main函数的相关应用,可以参考我以前的文章《C#应用程序的返回值》、《 C#中命令行参数的应用领域及其实现》。

2. Console类及其常用方法
    Console类是表示控制台应用程序的标准输入流、输出流和错误流,属于System命名空间下。
    它是一个静态类,无法创建它的实例对象,直接引用其方法即可。
    控制台是一个操作系统窗口,用户可在其中通过计算机键盘输入文本,并从计算机终端读取文本输出,从而与操作系统或基于文本的控制台应用程序进行交互。例如,在 Windows 中控制台称为命令提示窗口,可以接受 MS-DOS 命令。Console 类对从控制台读取字符并向控制台写入字符的应用程序提供基本支持。

3. namespace命名空间
    命名空间提供了一种组织相关类和其他类型的方式。与文件或组件不同,命名空间是一种逻辑组合,而不是物理组合。
    在C#文件中定义类时,可以把它包括在命名空间定义中。以后,在定义另一个类,在另一个文件中执行相关操作时,就可以在同一个命名空间中包含它,创建一个逻辑组合,告诉使用类的其他开发人员这两个类是如何相关的以及如何使用它们。

EL6751实战指南:从协议解析到工业现场部署 本文详细介绍了EL6751网关在工业通信协议转换中的应用,从CANopen协议解析到EtherCAT系统部署的实战指南。通过协议栈位置、数据封装方式和通信模型差异的深入分析,帮助工程师高效实现EtherCAT主站与CANopen从站设备间的无缝对接,提升工业现场通信效率。 阅读详情

相关推荐

利用Matlab高效处理Comsol仿真数据的可视化技巧

本文详细介绍了如何将Comsol仿真数据高效导入Matlab并进行专业可视化与后处理。核心内容包括正确的数据导出格式设置、三维矩阵重构方法、二维截面与三维体渲染技巧,以及基于Matlab的定量分析与批处理自动化流程,帮助工程师和科研人员深度挖掘仿真数据价值,提升工作效率。

weixin_29065791的博客 362

C#控制台程序

/*用控制台输入一个整数, * 如果该整数不在0到100的范围内, * 则抛出异常提示数值不在正确范围 * 内,如果输入的不是整数,则会捕 * 获系统抛出字符串格式不正确的提示。 * 当捕获异常时,程序会重新提示用户 * 输入一个整数,直到输入正确的整数为止。 */ using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 {

qq_54241971的博客 1612

SAP MRKO与MIRO的对比分析:为何寄售结算需要定制开发?

本文深入分析了SAP系统中MRKO与MIRO在寄售结算中的功能差异,揭示了标准MRKO在财务控制和业务流程上的局限性。通过定制开发实践,如BAdI增强和界面优化,企业可显著提升结算效率与准确性。文章还探讨了未来SAP S/4HANA在寄售结算中的智能化趋势,为相关企业提供技术参考。

weixin_29300241的博客 424

深入浅出C#2008从入门到提高Step By Step(四)一个简单的Windows窗体应用程序

作者:PeterXu  来源:Blog.优快云  Blog: http://blog.youkuaiyun.com/peterreg/版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。本文地址:http://blog.youkuaiyun.com/peterreg/archive/2008/04.aspx 接我的上一篇文章《一个简单的控制台程序》,下面我们

PeterXu的专栏 2447

AI智能体评估基准AgentBench:从原理到实战的完整指南

在人工智能领域,智能体(AI Agent)的评估是衡量其实际应用能力的关键环节。评估基准通过设计标准化的测试任务,系统性地检验智能体的推理、规划和工具使用等核心能力。其技术价值在于为模型迭代和产品选型提供了客观、可复现的量化依据,能有效推动技术从演示走向工程落地。典型的应用场景包括模型能力评测、智能体框架对比以及具体应用(如自动化运维、智能客服)的性能验证。本文聚焦于清华团队推出的AgentBench,它作为一个多维度的综合评估套件,涵盖了从操作系统、数据库操作到网页浏览、数字卡牌游戏等八个贴近真实世界的任

weixin_27207591的博客 599

AI基础入门(大模型基础篇)——技术视角:你应该知道的LLM基础知识

本文从技术视角解析了大模型的工作原理,主要介绍了三个核心概念:Token、温度和Embedding。首先,大模型通过逐个添加Token来生成文本,Token数量直接影响上下文窗口大小和计费标准。其次,通过引入温度参数控制随机性,温度越高输出越多样化。最后,解释了字符串如何通过One-Hot编码和神经网络压缩转化为向量形式的Embedding,这是AI处理各类输入的基础。这些概念对理解大模型应用开发至关重要,Token决定处理能力,温度影响输出风格,Embedding则是信息转换的关键步骤。

小志的博客 1506

深入浅出C#2008从入门到提高Step By Step(二)C#基本概念

 作者:PeterXu  来源:Blog.优快云  Blog: http://blog.youkuaiyun.com/peterreg/版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。本文地址:http://blog.youkuaiyun.com/peterreg/archive/2008/04/09/2267297.aspx接我的上一篇文章《VS200

PeterXu的专栏 1814

华为OD机试2025C卷-双十一最大花费金额[100分](Java_Python3_C++_C语言_JsNode_Go)实现100%通过率

双十一最大花费金额 - 动态规划解法 摘要:本文介绍了华为OD机试中"双十一最大花费金额"问题的动态规划解法。该问题要求在给定N件商品价格和优惠券面额X的情况下,选择若干商品使总花费不超过X且尽可能大。核心解法采用布尔型动态规划数组,记录每个金额是否可被拼出。算法时间复杂度为O(N*X),空间复杂度为O(X)。通过倒序遍历避免重复选择同一商品,最后从X向下查找第一个可达金额作为答案。文中提供了C++和Java的实现代码,并解释了与经典0-1背包问题的关系。 关键点: 问题本质是0-1背包/子集和问题的变体

2503_91057718的博客 46

EF框架step by step(1)—Database-First

ADO.NET Entity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案,现已经包含在 Visual Studio 2008 Service Pack 1 以及 .NET Framework 3.5 Service Pack 1 中发布。目前最新版本为4.1,可以点此下载。   ADO.NET Entity Framewor...

weixin_33859844的博客 218

万字长文,小白新手怎么开始做YOLO实验,从零开始教!整体思路在这里,科研指南针!

万字长文,小白新手怎么开始做YOLO实验,从零开始教!整体思路在这里,科研指南针!

Coding... 1万+

15、降维算法:原理、实现与应用

本文深入介绍了多种降维算法,包括线性方法如主成分分析(PCA)和线性判别分析(LDA),以及非线性方法如Sammon映射、t分布随机邻域嵌入(t-SNE)和自编码器。文章通过C++库Dlib和Shogun展示了这些算法的具体实现,并结合图像压缩和数据可视化等实际案例,分析了不同算法的适用场景。此外,还探讨了降维算法的选择策略、优化改进方法以及未来发展趋势,为读者提供了全面的技术理解和应用指导。

lemon的博客 116

[转载]Step By Step - Using Silverlight to Access a WCF Service Hosted In a Console Application

From:http://www.dotnetcurry.com/ShowArticle.aspx?ID=208 Note: This article is written based on a pre-release version of Silverlight and could change in future. In Silverlight, we often come acro...

weixin_34138521的博客 215

硬件工程师学习-硬件的单元测试(UT)(1)电源与时钟的测试

我们在设计的时候,通过控制电源的上电使能管脚或者通过MOSFET、或者专用的电源上电控制芯片,控制不同电源的上电时序,以确保每个芯片的电源上电时序是满足芯片的要求的。我们在测试的时候,需要对相关的要求一一测试,以确认每个上电时序满足要求的。在维基百科中,相位噪声的定义是“时域不稳定性(抖动)导致波形在相位上发生快速、短期、随机的波动,这种波动在频域中的表现即为相位噪声”。单元测试,一般是指基于开发人员自行开展的功能测试及各个功能单元的单元测试,是硬件信号级的测试,分为基本测试和信号完整性测试。

qq_43416206的博客 4034

Step By Step - Using Silverlight to Access a WCF Service Hosted In a Console Application

Step By Step - Using Silverlight to Access a WCF Service Hosted In a Console Application Note: This article is written based on a pre-release version of Silverlight and could change in future....

weixin_30341745的博客 126

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

.Net的异步机制(委托Delegate) - STEP 1

在阅读下面知识前,我已经认为你已经具有c#的基础,包括简单的委托知识; 代码使用VS2008开发,但是会在.Net Framework 2.0(C Sharp)编写 什么是.Net异步机制呢?   在解释这个话题前,我们先看看同步的程序,就是我们常用的Hello World 程序。 Code 1: 1classProgram2{3staticvoi...

weixin_30679823的博客 82

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

2016年AWS re:Invent大会回顾

译者:足下在拉斯维加斯的年度re:Invent大会上,AWS公布了一系列即将推出的云服务。亚马逊列出了公共云即将可用的二十多个新功能,包括在S3对象存储中直接查询数据、将...

weixin_37098404的博客 311

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

AWS re:Invent大会回顾

在拉斯维加斯的年度re:Invent大会上,AWS公布了一系列即将推出的云服务。亚马逊列出了公共云即将可用的二十多个新功能,包括在S3对象存储中直接查询数据、将构建代码作为部署流水线的一部分、提供廉价的虚拟专用服务器和通过ETL的方式大规模移动数据等。\\作为产品发布公告的一部分内容,AWS探讨了数据的生命周期:迁移、存储、整合、查询和分析。AWS Snowball Edge是一种构建在之前的Sn...

weixin_34223655的博客 83

基于LM555的触摸开关制作:从原理到实战的电子入门项目

定时器电路是数字与模拟电子技术中的基础模块,其核心原理是通过内部比较器和触发器对电压阈值进行检测与控制,从而实现精确的时序或状态管理。这种技术价值在于能以极低成本实现稳定的逻辑功能,广泛应用于信号发生、延时控制与开关驱动等场景。以经典的LM555时基集成电路为例,通过将其配置为双稳态触发器模式,可以巧妙利用人体电阻引入的微弱电信号变化,构建无需机械触点的触摸感应开关。本项目深入解析了双稳态触发器的工作原理,并提供了从元件选型、电路焊接到调试优化的完整工程实践指南,特别针对触摸灵敏度优化和常见故障排查提供了解

weixin_33743661的博客 337

BU61580 BC模式寄存器配置实战:从初始化到跑通1553B消息

1553B总线是航空电子系统中广泛使用的命令响应式总线,具有严格的消息调度机制。总线控制器(BC)作为总线上唯一的指挥者,负责发起所有消息,其软件配置直接决定整个总线网络能否正常运行。寄存器配置是BC初始化的核心环节,通过正确设置芯片的模式位、堆栈指针、中断屏蔽等寄存器,才能让协议引擎按照预期调度消息。BU61580作为经典的1553B总线接口芯片,支持BC、RT、MT三种角色,其BC模式配置涉及消息堆栈构建、命令字组装、状态字解析等多个关键步骤。本文从1553B消息模型出发,讲解BC启动所需的寄存器配置思

weixin_34347651的博客 700

NHibernate延迟加载原理与领域模型保护机制解析

ORM框架的核心挑战在于弥合对象模型与关系数据库之间的阻抗失配。延迟加载作为关键机制,其本质并非简单拦截属性访问,而是通过动态代理在数据加载时机与业务逻辑完整性之间实现精妙平衡。NHibernate采用virtual方法+运行时子类代理的设计,确保getter/setter中的校验、计算、事件等业务逻辑不被绕过,真正支撑充血模型与DDD实践。该能力直接决定框架能否在中大型系统中长期稳定承载复杂业务规则,适用于需要强领域一致性、细粒度加载控制及高可扩展性的.NET企业级开发场景。

weixin_40192258的博客 532
上一篇: 深入浅出C#2008从入门到提高Step By Step(二)C#基本概念
下一篇: 深入浅出C#2008从入门到提高Step By Step(四)一个简单的Windows窗体应用程序
peterreg
博客等级 码龄19年 11粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值