接着上一讲,我们新建了一个名为"CSharpBasic"的控制台工程,首先看一下VS中的代码编辑区域,默认打开的是Program.cs这个文件,VS为我们自动添加的代码如下(由于我是用VS2008新建的,所以引入的命名空间与VS2005有所不同):
下面我们来讲解一下这个最基本的程序代码。
1、using语句:在这个文件的最上部,看到有4行以using打头的代码,它们代表的意义为引入”using“后面的命名空间,那么什么是命名空间呢。首先来看看MSDN中的解释:
命名空间是一种组织 C#
程序中出现的不同类型的方式。命名空间在概念上与计算机文件系统中的文件夹有些类似。与文件夹一样,命名空间可使类具有唯一的完全限定名称。一个 C#
程序包含一个或多个命名空间,每个命名空间或者由程序员定义,或者作为之前编写的类库的一部分定义。
什么意思呢?我们用比较通俗的话来解释一下吧,比如 一个屋里有两个人,名字分别是”李明“和”张明“,那如果我们直叫”明“,他们俩就不知道我们叫的是谁,这是我们就要叫全名,比如”李明“,这样,李明就能知道我们叫的是他,名”明“就好比C#的类,姓”李“和”张“就好比是不同的命名空间,当只有一个叫做”明“的人的时候,我们可以只叫”明“即可,但如果同时存在好几个”明“的时候,我们就要叫他们的全名了。可能有人会说了,那如果有好几个人都叫”李明“咋办?同样的道理,这时候,”李明“就是一个类,我们就要在这个类之前再加一个命名空间,比如”三年二班的”李明,“四年一班”的李明,等等……如果还在一个班里,那就再加上其它的命名空间,如:坐第几排第几列的,等等……直到它们的全名唯一为止。叫全名肯定是比较妥当的了,但要每一个都写全名,那会相当复杂和麻烦的,所以,using 语句就帮了我们一个大忙,可以把要用到的命名空间名称写到using后面,那么在这个cs文件中,要使用到这个命名空间下面的类时,直接输入类名即可,而不用写全名了,当然,如果碰到引入的命名空间下有类名重复的情况的时候,在用这些类时,还要把它们的全名都写上,不然,编译器无法知道你调用的是哪个类。.net类库中已经预先定义了一部分命名空间了,如这个例子的头四行,就是.net类库预定义的命名空间。也就是说,我们可以在这个文件里直接写System,System.Collections.Generic,System.Linq,System.Text这四个命名空间下的类,而不用再写命名空间的名称了。那么,using是否只能写在cs文件的最顶头呢?我们来试试把它们移动一下位置,把它们移到最下面:
运行程序,看到编译失败,提示错误: using 子句必须位于命名空间中定义的所有其他元素之前(外部别名声明除外)
看来是不行哦,我们还是老老实实地写在namespace之前吧~~
2、本程序的命名空间:知道了命名空间的作用之后再来看看namespace CSharpBasic这句代码,这句话的意思是为下面的类Program定义一个命名空间,名称为CSharpBasic,这个是VS根据我们的工程名为我们自动创建的,我们当然可以将其改为我们自己喜欢的名字,一般都是以本公司的名称或工程的类型来命名的,这里我起名为ojlovecd。
3、类名称:啥是类?先来看看MSDN对类的定义:类是 C#
中功能最为强大的数据类型。像结构一样,类也定义了数据类型的数据和行为。然后,程序员可以创建作为此类的实例的对象。与结构不同,类支持继承,而继承是面向对象编程的基础部分。
去除定状补,就变成了“类是数据类型”,那什么是数据类型?再来看看MSDN对数据类型的定义:
数据类型概述
类型可描述为:
-
内置数值类型(如 int 或 char),或
-
用户定义类型(如 class 或 interface)。
-
匿名类型,它由一组封装在无名称引用类型中的公共属性组成。
-
类型还可以定义为:
-
值类型(C#
参考)(用于存储值)。这些类型包括基元数值类型、枚举和结构,还包括这几种类型的可以为 null 的版本。
-
引用类型(C#
参考)(用于存储对实际数据的引用)。这些类型包括类、接口、数组和委托。
C# 是强类型语言;因此每个变量和对象都必须具有声明类型。啥意思呢?也就是说,在C#里面,你使用的任何变量或对象,都必须是某一个数据类型,不存在没有数据类型的变量或对象。这就好比这世界上某一个新生命的诞生,它肯定是属于某一个物种的。类型包括.net类库内置的数值类型,用户自定义类型和匿名类型(匿名类型为C#3.0新增的特性),我们这里的类,就属于用户自定义类型,关于类的详细介绍,我们将在以后进行。跟命名空间一样,类名也是我们可以自由更改的,它可以和命名空间的名称起同一个,我们这里把Program也改成ojlovecd。
4、程序入口点Main方法:“函数”一词在C#里已经改名为了“方法”,Main方法是C#程序的入口点。运行程序的时候,系统将会调用Main方法来启动我们的应用程序,那么,Main方法能否改名呢?我们来试试,把Main方法也改成ojlovecd试试:
运行代码,程序出错,错误为: “ojlovecd”: 成员名称不能与它们的封闭类型相同
看错误信息,是告诉我们成员的名称不能与类名相同,那我们再改个别的名称看看,比如说改成CSDN:
再次运行,还是出错,错误为: 程序“C:\Documents and Settings\区健\My Documents\Visual Studio 2008\Projects\CSharpBasic\CSharpBasic\obj\Debug\CSharpBasic.exe”不包含适合于入口点的静态“Main”方法
看来是不行的,也就是说程序不仅必须包括Main方法,而且Main方法还必须是静态的。那什么是静态的?就是关键字static所修饰的成员,有什么作用呢?我们以后再讲。
把CSDN改回Main,我们在Main方法体(就是用话括弧{}包含的那部分)中,输入如下代码:
按下Ctrl+F5,就可以生成我们的第一个应用程序了,如下图:

至此,我们的第一个应用程序创建并运行成功了,在下一讲中,我们将会讲解关于这个程序的更多有用信息。
分享到:
相关推荐
- **项目1:HelloWorld文件流操作**:演示如何创建文件、写入内容以及读取文件中的数据。 - **项目2:创建一个简单的Windows记事本**:使用C#实现基本的文本编辑器功能,包括打开文件、保存文件、查找替换等。 - ...
读核感悟 Linux内核启动 从hello world说起 3 读核感悟 Linux内核启动 BIOS 5 读核感悟 Linux内核启动 setup辅助程序 6 读核感悟 Linux内核启动 内核解压缩 8 读核感悟 Linux内核启动 开启页面映射 9 读核感悟 Linux...
嵌入式八股文面试题库资料知识宝典-华为的面试试题.zip
训练导控系统设计.pdf
嵌入式八股文面试题库资料知识宝典-网络编程.zip
人脸转正GAN模型的高效压缩.pdf
少儿编程scratch项目源代码文件案例素材-几何冲刺 转瞬即逝.zip
少儿编程scratch项目源代码文件案例素材-鸡蛋.zip
嵌入式系统_USB设备枚举与HID通信_CH559单片机USB主机键盘鼠标复合设备控制_基于CH559单片机的USB主机模式设备枚举与键盘鼠标数据收发系统支持复合设备识别与HID
嵌入式八股文面试题库资料知识宝典-linux常见面试题.zip
面向智慧工地的压力机在线数据的预警应用开发.pdf
基于Unity3D的鱼类运动行为可视化研究.pdf
少儿编程scratch项目源代码文件案例素材-霍格沃茨魔法学校.zip
少儿编程scratch项目源代码文件案例素材-金币冲刺.zip
内容概要:本文深入探讨了HarmonyOS编译构建子系统的作用及其技术细节。作为鸿蒙操作系统背后的关键技术之一,编译构建子系统通过GN和Ninja工具实现了高效的源代码到机器代码的转换,确保了系统的稳定性和性能优化。该系统不仅支持多系统版本构建、芯片厂商定制,还具备强大的调试与维护能力。其高效编译速度、灵活性和可扩展性使其在华为设备和其他智能终端中发挥了重要作用。文章还比较了HarmonyOS编译构建子系统与安卓和iOS编译系统的异同,并展望了其未来的发展趋势和技术演进方向。; 适合人群:对操作系统底层技术感兴趣的开发者、工程师和技术爱好者。; 使用场景及目标:①了解HarmonyOS编译构建子系统的基本概念和工作原理;②掌握其在不同设备上的应用和优化策略;③对比HarmonyOS与安卓、iOS编译系统的差异;④探索其未来发展方向和技术演进路径。; 其他说明:本文详细介绍了HarmonyOS编译构建子系统的架构设计、核心功能和实际应用案例,强调了其在万物互联时代的重要性和潜力。阅读时建议重点关注编译构建子系统的独特优势及其对鸿蒙生态系统的深远影响。
嵌入式八股文面试题库资料知识宝典-奇虎360 2015校园招聘C++研发工程师笔试题.zip
嵌入式八股文面试题库资料知识宝典-腾讯2014校园招聘C语言笔试题(附答案).zip
双种群变异策略改进RWCE算法优化换热网络.pdf
内容概要:本文详细介绍了基于瞬时无功功率理论的三电平有源电力滤波器(APF)仿真研究。主要内容涵盖并联型APF的工作原理、三相三电平NPC结构、谐波检测方法(ipiq)、双闭环控制策略(电压外环+电流内环PI控制)以及SVPWM矢量调制技术。仿真结果显示,在APF投入前后,电网电流THD从21.9%降至3.77%,显著提高了电能质量。 适用人群:从事电力系统研究、电力电子技术开发的专业人士,尤其是对有源电力滤波器及其仿真感兴趣的工程师和技术人员。 使用场景及目标:适用于需要解决电力系统中谐波污染和无功补偿问题的研究项目。目标是通过仿真验证APF的有效性和可行性,优化电力系统的电能质量。 其他说明:文中提到的仿真模型涉及多个关键模块,如三相交流电压模块、非线性负载、信号采集模块、LC滤波器模块等,这些模块的设计和协同工作对于实现良好的谐波抑制和无功补偿至关重要。
内容概要:本文探讨了在工业自动化和物联网交汇背景下,构建OPC DA转MQTT网关软件的需求及其具体实现方法。文中详细介绍了如何利用Python编程语言及相关库(如OpenOPC用于读取OPC DA数据,paho-mqtt用于MQTT消息传递),完成从OPC DA数据解析、格式转换到最终通过MQTT协议发布数据的关键步骤。此外,还讨论了针对不良网络环境下数据传输优化措施以及后续测试验证过程。 适合人群:从事工业自动化系统集成、物联网项目开发的技术人员,特别是那些希望提升跨协议数据交换能力的专业人士。 使用场景及目标:适用于需要在不同通信协议间建立高效稳定的数据通道的应用场合,比如制造业生产线监控、远程设备管理等。主要目的是克服传统有线网络限制,实现在不稳定无线网络条件下仍能保持良好性能的数据传输。 其他说明:文中提供了具体的代码片段帮助理解整个流程,并强调了实际部署过程中可能遇到的问题及解决方案。