C#简单的欢迎程序
1.理解一个C#程序的基本结构。
2.初步了解"名称空间"的概念。
3.初步了解"类"的概念。
4.了解"Main"方法所做的工作。
5.学会如何读取命令行输入信息。
6.学会使用控制台输入/输出 (I/O)语句。
1.清单1-1. 一个简单的欢迎程序Welcome.cs
// Namespace Declaration
using System;
// Program start class
class WelcomeCSS {
// Main begins program execution.
public static void Main() {
// Write to console
Console.WriteLine("Welcome to the C# Station Tutorial!");
}
}
说明
1.清单1-1中的程序包括四个基本元素:名称空间的声明,类,"Main"方法和语句。
2.本例中对名称空间的声明,表明正在使用"System"这个名称空间。
名称空间内包含了一组可以被C#程序调用的代码。有了"using System;"这个声明,就表明程序可以引用该"System"名称空间内的代码,而无需在每个引用的前面加上"System"。关于这一点,我将在后面专门介绍名称空间的课程中详细介绍。
3.类"class WelcomeCSS"包含了程序所要用到的数据,和所要执行的方法的定义。
同诸如接口和结构这样的元素类似,类在程序中是用来描述对象的,这些元素都将会在后续课程中详细介绍。本例中的类不包含数据,只包含一个方法。该方法定义了该类的行为(或者称为该类所能做的事情)。
4.程序运行时,WelcomeCSS类中的该方法表明了该类所要完成的事情。
方法名"Main"作为保留字,作为程序的起点。"Main"前面是个名为"static"的修饰符。"static"修饰符表明该方法仅仅在该特定的类中工作,而不是在在该类的实例中工作。这是必需的,因为一旦程序启动后,并不存在对象的实例。类,对象和实例的具体用法将会在后面的课程中覆盖到。每个方法必须有个返回值类型。本例中,返回值类型是"void",它表明"Main"函数没有返回值。每个方法名的后面也都跟着个参数表,参数表包含有零个或者多个参数并用括号括起来。为了简单起见,没有在"Main"后面添加参数。后面的课程中,将介绍"Main"方法所允许采用的参数类型。
5."Main"方法通过"Console.WriteLine(...)" 语句表明其行为。
"Console" 是"System" 名称空间中的类。"WriteLine(...)"是"Console" 类中的方法。我们使用"."这个句点操作符来标记程序中的从属元素。注意到,我们也可以这样来书写:"System.Console.WriteLine(...)",这样的书写格式是很有趣的,它是根据"namespace.class.method" 的格式进行书写的。如果在程序的一开始,没有采用"using System"的声明,那么就必须严格遵守"System.Console.WriteLine(...)"这样的书写格式。该语句的执行结果是在控制台控制台上输出字符串"Welcome to the C# Station Tutorial!" 。
6.注释是由"//"标出的。
例子中的这些注释都是单行注释,表明从该注释符号的开始处到该行结束处,都是注释部分。如果你的注释要跨越若干行,即多行注释,可以以符号"/*"开始,以符号"*/"结束,其中所包含的全部是注释。你也可以在多行注释符号中包含单行注释。但是,不能在单行注释符号后面放上多行注释符号。程序编译时,将忽略掉注释部分。注释的目的是为了用简单的英语给程序所要完成的工作加上注解。
7.所有语句都以分号";"结束。
类和方法以"{"开始,以"}"结束。任何位于"{"和"}"之间的语句定义为块。块定义了程序元素的活动范围 (或者称为生命期和可见性),这些概念将在后面的课程中加以介绍。
8.可以编写出能够接受命令行输入信息的程序。
命令行输入信息的集合是在"Main"方法中进行处理的。清单1-2中的程序,可以从命令行中接受输入一个名字,之后在控制台上显示出来。
2.清单1-2. 读取命令行输入信息的程序NamedWelcome.cs
// Namespace Declaration
using System;
// Program start class
class NamedWelcome {
// Main begins program execution.
public static void Main(string[] args) {
// Write to console
Console.WriteLine("Hello, {0}!", args[0]);
Console.WriteLine("Welcome to the C# Station Tutorial!");
}
}
说明
1.记住,要把你的名字添加到命令行中。
例如,在命令行中打入"NamedWelcome Joe"。如果不这样做,程序就会崩溃,在后面的课程中,将介绍如何检测这种情况,以及如何避免这种情况的出现。
2.在清单1-2中,在"Main"方法的参数表中有个入口。
参数名是"args"。 在程序的后面部分就要引用该参数。"string[]"是参数"args"的类型。"string"类型用于存放字符。这些字符可以是一个单词,也可以是多个单词。方括号"[]"表示数组,"args"参数由命令行上的若干个单词构成。
3.在"Main"方法的语句中,多了一条"Console.WriteLine(...)"语句。
该语句中的参数表同以往的写法不同,其中有个格式字符串"{0}" 参数。 格式串中的第一个参数从数字0开始,第二个参数从数字1开始,依此类推。 "{0}" 参数意味着引号后面的参数值将会输出到该位置。现在让我们来看看引号后面的参数。
4."args[0]"参数,它指向"args"数组中的第一个字符串。
数组中的第一个元素是args[0], 第二个元素是args[1],依此类推。例如,如果我在命令行中写上"NamedWelcome Joe","args[0]"的值就为"Joe".
让我们回到在格式字符串中嵌入的"{0}" 参数吧,因为"args[0]"是格式串后面的第一个参数, 一旦执行该命令时,"args[0]"的值"Joe"就会替换掉格式串中的"{0}"。一旦执行命令:"NamedWelcome Joe",输出结果就会为:
>Hello, Joe!
>Welcome to the C# Station Tutorial!
通过控制台也可以把输入信息提供给程序。清单1-3演示了交互式处理用户输入的信息的方法。
3.清单1-3. 交互式处理输入信息的程序 InteractiveWelcome.cs
// Namespace Declaration
using System;
// Program start class
class NamedWelcome {
// Main begins program execution.
public static void Main() {
// Write to console/get input
Console.Write("What is your name?: ");
Console.Write("Hello, {0}! ", Console.ReadLine());
Console.WriteLine("Welcome to the C# Station Tutorial!");
}
}
说明
这一次,"Main"方法没有用到任何参数,但现在程序中有了三条语句,前面两条语句不同于第三条语句,它们是:"Console.Write(...)"而不是 "Console.WriteLine(...)"。区别是:"Console.Write(...)"语句把信息输出到控制台,之后光标停留在同一行,而"Console.WriteLine(...)"把信息输出,之后换行。
第一条语句仅仅输出"What is your name?: "到控制台。
第二条语句要等到其参数被适当地处理之后,才会输出信息。 格式串后面的第一个参数是:"Console.ReadLine()"。这就使得程序要等待用户在控制台输入信息,输入信息以回车或者换行结束。该方法的返回值替换了格式串中的"{0}"参数,并输出到控制台上。
最后一个语句也用来输出信息到控制台,这一点我们在前面已经介绍过。一旦运行了程序"InteractiveWelcome",其输出结果为:
>What is your Name?
>Hello, ! Welcome to the C# Station Tutorial!
小结
到现在为止,你已经了解了C#程序的基本结构,名称空间和类。你还了解到"Main"方法是C# 程序的入口,并学会了如何捕捉命令行的输入信息,以及如何进行交互式的I/O操作。
相关文章:

知乎联合清华:开放国内最大个性化推荐实际交互数据集
5月21日,知乎联合清华大学对外开放基于知乎的大规模富文本查询和推荐数据集“ZhihuRec”。该数据集包含了知乎上的1亿个行为数据,是目前为止,国内用于个性化推荐的最大的实际交互数据集。 作为一个大型数据集,ZhihuRec具有社交化问…

SQL Server 2014 许可证(五)降级与升级
“版本”一词对应的英文单词有两个:(1) Version是指不同历史时期发生的产品,或者指产品不同的“代”,例如,SQL Server 2014 版本。(2) Edition是指在发行同一代产品(Vers…

OCM_第十二天课程:Section6 —》数据库性能调优_ 资源管理器/执行计划
注:本文为原著(其内容来自 腾科教育培训课堂)。阅读本文注意事项如下:1:所有文章的转载请标注本文出处。2:本文非本人不得用于商业用途。违者将承当相应法律责任。3:该系列文章目录列表…

赠书 | 联邦学习如何在视觉领域应用?
前言:联邦学习是如何应用在视觉领域的?本文将通过一个获得了2020年AAAI人工智能创新应用奖的案例来向大家介绍。本案例是联邦学习在视觉、物联网、安防领域的实际应用,对分散在各地的摄像头数据,通过联邦学习,构建一个…

AME_Oracle自带AME审批链详解AME Standard Handler(概念)
2014-05-30 Created By BaoXinJian Oracle 自带了3大类,13个子类的审批链Action Type, 对应了13个标准的AME Standard Handler 1. 按主管层次审批 absolute job level / chains of authority based on absolute job levelfinal approver only / chains of authorit…

c# 中如何定义和接收消息
在C#中目前我还没有找到发送消息的类成员函数,所以只能采用通过调用WIN 32 API 的 SendMessage() 函数实现。由于 SendMessage的参数中需要得到窗体的句柄(handler) ,所以又要调用另一个API FindWindow(), 两者配合使用,达到在不同窗体之间的…

java如何读写json文件
java如何读写json文件 在实际项目开发中,有时会遇到一些全局的配置缓存,最好的做法是配置redis数据库作为数据缓存,而当未有配置redis服务器时,读取静态资源文件(如xml、json等)也是一种实现方式࿰…

C#数组篇讲解
数组是我们经常用到的,我来介绍一下:数组是具有相同类型的一组数据。当访问数组中的数据时,可以通过下标来指明。c#中数组元素可以为任何数据类型,数组下标从0开始,即第一个元素对应的下标为0,以后逐个递增…

Spring AOP详解(转载)所需要的包
上一篇文章中,《Spring Aop详解(转载)》里的代码都可以运行,只是包比较多,中间缺少了几个相应的包,根据报错,几经百度搜索,终于补全了所有包。 截图如下: 在主测试类里面…

Mendix 披露低代码方法论,解读真实技术趋势
作者 | 宋慧头图 | 下载于视觉中国出品 | AI 科技大本营(ID:rgznai100)在 2021年初正式宣布进入中国市场之后,Mendix 在近日向媒体重点披露了关于低代码的技术方法论,以及近四个月在中国市场的进展。Mendix 的低代码技术方法论对于…

PHP中foreach详细解读
oreach 语法结构提供了遍历数组的简单方式。foreach 仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量,或者未初始化的变量将发出错误信息。有两种语法: foreach (array_expression as $value) statement foreach (array_expression…

Android ViewPager使用具体解释
这是谷歌官方给我们提供的一个兼容低版本号安卓设备的软件包,里面包囊了仅仅有在安卓3.0以上能够使用的api。而viewpager就是当中之中的一个利用它,我们能够做非常多事情,从最简单的导航,到页面菜单等等。那怎样使用它呢ÿ…

实时音视频的超级风口,开发者的机会在哪里?
2021年初因为Elon Musk“带货”而走红的音频社交App Clubhouse,又以肉眼可见的速度跌落神坛,下载量从2月的960 万/月跌至4月的92万/月。不过在5月,Clubhouse终于推出了安卓版,并表示接下来也会对所有用户开放。 另一边,…
高可用集群之分布式文件系统
一、分布式文件系统和单机文件系统的区别:单机文件系统的分区只能被一台主机所挂载,不能同时被多台主机挂载使用,因为单机文件系统是通过系统内核层的锁机制来完成的,所以一个系统上可以有多个进程访问,但只能在一个时…

C#中基本知识
当数据转换到asp.net页面时,大部分都是以文本的形式存在的。有时候为了输出,单单使用显示或者隐式转换都是不行的,就需要本节说到的数据转换。 字符串输出: int intAge21; string strAgeintAge.ToString(); 转换DateTime值时&…

索引系列八--索引特性之有序难优化union
----UNION 是需要排序的drop table t1 purge;create table t1 as select * from dba_objects where object_id is not null;alter table t1 modify OBJECT_ID not null;drop table t2 purge;create table t2 as select * from dba_objects where object_id is not null;alter t…

OpenCV 实战:3 步实现图像降噪
来源 | 小白视觉志 头图 | 下载于视觉中国本文将展示如何通过三个简单的步骤来实现降噪。我们将使用机器学习训练的降噪模型,最好的降噪模型之一。程序可以判断图像是否有噪点吗?这应该是一个很有创意的想法,因为我们的降噪模型不够智能&…

一条数字链路连接的端口无法UP及后续相应故障的排除
故障现象1: 运营商检测线路正常,但是端口无法up。 解决办法: 1、翻转端口 2、将端口速率强制为1000M,全双工#speed 1000 #dup full 端口正常UP。 故障现象2: 线路丢包5%。 解决办法: 1、检查端口光功率&…

华为:HarmonyOS 即将开源!
整理 | 晋兆雨出品 | CSDN(ID:CSDNnews)5 月 24 日,在鸿蒙开发者创新大赛颁奖典礼上,华为消费者业务软件部总裁王成录宣布:HarmonyOS 将会开源开放,并在武汉大学等15个学校开展 HarmonyOS 课程。…

C#实现网段扫描
摘要 想必大家对小榕时光等扫描器都非常熟悉了,有没有自己写一个的冲动。最近微软推实施了.NET战略方案,C#是主推语言,你们是否有兴趣用C#来实现对局域网IP地址的扫描,尝试一下自己写的快乐,那么请跟我来。 正文 1.先介…

sbt配置nexus仓库
2019独角兽企业重金招聘Python工程师标准>>> 最近学习Scala,不可避免的要用到sbt。爱折腾的我把原本比较简单的事情搞的复杂了,来来回回搞了好久,记录下来,有同样爱折腾的盆友可以参考下。 sbt在windows下如果是默认安…

C#编程(十二)----------函数
类和结构 类和结构实际上都是创建对象的模板 ,每 个对象都包含数据 ,并 提供了处理和访问数据的方法。 类定义了类的每个对象 (称 为实例 )可 以包含什么数据和功能 。 例如 ,如 果 一 个类表示 一 个顾客 ,就可以定义字段 CustomerID、 FirstName、 LastNane和 Address,以 包含…

Linux很实用的命令查找软件安装目录
#whereis php #which php #php -v 查看版本号 差异自己去体会

Python 库突发 PyPI 危机!
整理 | 梦依丹出品 | CSDN(ID:CSDNnews)据 BleepingComputer 报道,Python 官方软件包存储库 PyPI 遭受了黑客攻击,攻击者通过注入垃圾邮件包的形式发起了洪水攻击。这些垃圾邮件及软件包用电影、电视节目名称命名&…

scala入门之代码补全
为什么80%的码农都做不了架构师?>>> 在scala的shell命令行中,我们可以使用像Linux那样的代码补全功能。Linux中是使用Tab键补全,scala的shell命令行也是使用这个键。例如,我们在“ssss”这个字符串上调用toUpperCase方…

pycharm第一个Python程序
print ("Hello word!"); 这是Python3.xx的语法!

C#枚举系统安装的所有打印机
在下面的程序中我们将把系统中所安装的打印机用列表框列出来,同时为默认打印机设置缺省值。 在下面的程序中我们用到了两个主要的类,把所有的打印机列表出来用到了PrinterSettings 类,获取系统默认打印机用到了PrintDocument 类,下面我们就动…

编译安装linux内核步骤
编译安装linux内核步骤: 一.获取内核源码 源码网址:www.kernel.org 二.解压内核源码 首先以root帐号登录,然后进入/usr/src子目录。如果用户在安装Linux时,安装了内核的源代码,则会发现一个linux-x.y.z的子目录。该目录…

遏制企业数据泄露之殇,大咖切磋云安全的攻防之道
整理 | 寇雪芹出品 | AI 科技大本营(ID:rgznai100)5 月 7 日,美国最大燃油管道、东部地区油气输送主动脉 Colonial Pipeline 计算机系统被黑客入侵和勒索,导致美国17个州和华盛顿特区进入紧急状态。这次黑客入侵无异于一记重拳&am…

【NOIP2016】愤怒的小鸟
Description Kiana最近沉迷于一款神奇的游戏无法自拔。 简单来说,这款游戏是在一个平面上进行的。 有一架弹弓位于(0,0)处,每次Kiana可以用它向第一象限发射一只红色的小鸟,小鸟们的飞行轨迹均为形如y ax^2 bx的曲线,其中a, b是…