《C#控制台应用程序设计》由会员分享,可在线阅读,更多相关《C#控制台应用程序设计(25页珍藏版)》请在金锄头文库上搜索。
1、2017年8月29日,第4章 控制台应用程序设计,教学目标,本章主要介绍命名空间概念、定义及导入方法,标准输入输出类System.Console类的应用,System.Convert类的应用,C#程序的基本结构,Main方法的定义方法及功能,控制台应用程序的设计,命令行方式上机操作等内容。通过本章的学习,读者将对C#的框架有个初步的认识,能够完成控制台应用程序的设计,熟悉命令行方式上机操作。,教学重点,命名空间概念的含义 namespace和using关键字使用 System.Console类的使用 System.Convert类的使用 Main方法 C#主要预处理指令的使用 C#程序的基本结
2、构 控制台应用程序的设计,命名空间是一组包含相关方法的相似类,专门用于避免类与类之间的名称冲突。 命名空间用来声明一个范围,可以在这个范围内组织代码,创建全局唯一的类型。它把多个类收集在一起成为一组,便于组织代码,使自己的任务和他人提供的代码库分离;避免类与类之间的名称冲突;还可以提高编译速度。命名空间可以嵌套,从而分成层次。多个源代码文件可以使用同一个命名空间。 使用命名空间好处:一是可以使每个命名空间中的类不至于过多,二是可以保证类名的唯一性。,4.1 命名空间,使用namespace关键字定义命名空间。一个文件中可以有多个namespace语句。即使未显式声明命名空间,也会创建默认命名空
3、间。全局命名空间中的任何标识符都可用于命名空间中。 namespace语句中包含的类可以使用 private或public修饰符,缺省为public。,4.1.1 namespace关键字,namespace语句对于源文件的存放位置并无要求。编译器编译时也不对文件位置做检查。 提示:最好使用单位的名称作为根命名空间。.Net Framework由许多命名空间组成,其中最重要的是System。 .Net Framework类库常用的命名空间如下表所示:,4.1.1 namespace关键字,4.1.1 namespace关键字,.Net Framework类库以命名空间的形式 被组织成层次结构。
4、如同wingdows的目录结构,在使用其他命名空间中的类时,需要写上完整的类名称,当类嵌套了几层时,就会产生一些冗长的名称。例如:,4.1.2 using关键字,为了节约键入时间C#提供了using指示符。using的作用是导入命名空间中的所有公开类。using的语法格式是: using 命名空间的层次结构名称;,输入和输出是很多程序中常用的功能,也是非常重要的功能,C#提供了功能强大的输入与输出的控制。 Console类对从控制台读取字符并向控制台写入字符的应用程序提供基本支持。如果控制台不存在(在基于Windows的应用程序中就是这样),则不显示向控制台的写入而且不会引发异常。,4.2 S
5、ystem.Console类,Console类的属性:如表4-2所示。Console类的方法:如表4-3所示。,4.2 System.Console类,Console类的属性:表4-2,Console类的方法:表4-3,示例:Ex4-1、 Ex4-2,在C#的System命名空间中,有一个Convert(转换)类,该类提供了由字符串类型转换为其他类型的一系列静态方法。 调用格式: Convert.静态方法名(字符串类型数据) 表4-4给出了Convert类的常用静态方法 。,4.3 System.Convert类,表4-4 Convert类常用的静态方法,示例:Ex4-4,每一个应用程序都必须
6、包含一个名称为Main的方法,这个方法可以在任何一个类中定义。具体在哪个类中包含这个方法是无关紧要的。在一个给定的应用程序中可以包含任意数量的类,只要其中一个类包含名称为Main的方法就可以了。另外,这个方法必须被定义为“public”和“static”。,4.4 Main方法,Main方法总共有以下4种签名(返回类型和参数):public static void Main()public static void Main(string args)public static int Main()public static int Main(string args)/带参数的Main方法可以使程
7、序读取命令行参数。,4.4 Main方法,4.5 C# 预处理器指令,1. #define 预处理器指令 #define可用来定义符号。 其定义的一般格式是: #define 符号名 可以用 #undef 来取消定义符号。其定义的一般格式是: #undef 已定义的符号名 注: #define 可以定义符号,但无法对符号进行赋值; #define指令必须出现在文件内容的最前面。,4.5 C# 预处理器指令,2. #region . #endregion #region . #endregion之间的代码块可以在Visual Studio中展开或折叠。,4.5 C# 预处理器指令,3. #if#
8、elif#else#endif 使用 #if 以及 #else、#elif、#endif、#define 和 #undef 指令,可以包括或排除基于由一个或多个符号组成的条件的代码。这在编译调试版本的代码或编译特定配置时非常有用。其定义的一般格式是:#if (符号表达式1)#elif (符号表达式2)#else#endif,4.6 C#程序结构,C#程序结构特点如下:所有代码都组织在类中。程序从Main()方法开始执行,Main方法可以包含字符串数组(string args)类型的参数。C#语言区分大小写。C#程序中允许任意多的空白。C#程序中可以使用/, /* */和/添加注释,/后面跟xm
9、l。,4.6 C#程序结构,C#程序可由一个或多个文件组成。每个文件可包含一个或多个命名空间。一个命名空间除了可包含其他命名空间外,还可包含class( 类)、struct( 结构)、interface( 接口)、 enum( 枚举 )、delegate( 代理或叫委派)等类型。下面给出C#程序的框架,它可能包含所有这些元素。,4.7创建一个控制台应用程序,在Visual Studio 2005中创建一个控制台应用程序步骤是:(1) 启动Microsoft Visual Studio 2005。(2) 选择【文件】|【新建】|【项目】。随后会打开【新建项目】对话框。(3) 在【模板】选项区域中
10、选择【控制台应用程序】图标。(4) 在【位置】文本框中输入项目文件的路径。(5) 在【名称】文本框输入文件名或用默认的文件名。 (6) 确定已勾选了【创建解决方案的目录】选项,然后单击【确定】按钮。,4.7创建一个控制台应用程序,(7) 在显示了Program.cs文件【代码和文本编辑器】窗口Main方法的大括号中输入你的源程序。 / Output text to the screen.Console.WriteLine(欢迎使用Visual Studio 2005开发C#程序); Console.ReadKey();(8) 选择【生成】|【生成解决方案】,确定错误列表窗口没有任何错误出现。如有错误,修改源程序,重新编译,直到没有任何严重错误为止。该过程将编译项目中包括的所有文件,编译结果显示在“输出”窗口中 ,如果结果显示“生成: 1 已成功, 0 已失败, 0 已跳过”, (9) 选择【调试】|【开始执行(不调试)】,随后会打开一个命令窗口,程序开始运行。,本 章 小 结,本章重点介绍了名称空间、怎样导入系统的名称空间;System.Console类 和System.Convert类的使用 ;特殊方法Main方法 的特点;C#程序的基本结构 ;控制台应用程序的设计 和上机操作。,