您好,欢迎访问三七文档
主讲:李文全Email:liwqwolf@163.comQQ:78192128Tel:13580109088第3章C#编程基础学习要点1.了解C#程序的一般结构、标识符的命名规则以及C#关键字2.理解C#常用的简单值类型、复合值类型,了解C#的引用类型3.掌握不同数据类型之间的转换,理解装箱和拆箱的概念4.掌握常量和变量的概念及数组的声明和使用方法5.掌握运算符和表达式的概念以及常用流程控制语句的使用3.1一个简单的C#程序设计【示例代码:chpt3-1a\MyFirstProgram】usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceMyFirstProgram{classProgram{staticvoidMain(string[]args){//设置控制台窗口的标题Console.Title=例chpt3-a;Console.WriteLine(C#语言程序设计\n一个简单的控制台程序);Console.Read();}}}引用命名空间定义命名空间定义类程序入口3.1一个简单的C#程序设计(3)按下F5键或选中“调试”→“启动调试”菜单命令编译并运行此程序。其结果如图所示。3.1一个简单的C#程序设计3.1.1命名空间程序中经常要定义很多类和方法,为了便于组织和管理,C#语言引入了命名空间(namespace)的概念。命名空间相当于一个容器,它包含一组定义的类或结构,命名空间也可以嵌套在另一个命名空间中,就像文件目录一样。usingSystem;usingSystem.Collections.Generic;usingSystem.Text;.NET类库提供了很多类,根据类的功能不同,又划分了很多命名空间,而这些命名空间大多数有一个顶级的命名空间System,Text和Collections.Generic都是其下嵌套的命名空间。3.1一个简单的C#程序设计要调用命名空间下的某个类提供的方法,可以使用下面的语法:命名空间.命名空间.……命名空间.实例名称.方法名(参数,……);例如:System.Console.WriteLine(我的第一个C#程序);在C#应用程序中,一般在程序的开头使用关键字using来引入命名空间:using命名空间;usingSystem;因此,在后续程序中就可以直接写:Console.WriteLine(我的第一个C#程序);用户也可以使用关键字namespace创建自定义的命名空间:namespace命名空间名;3.1一个简单的C#程序设计命名空间类的功能System包含基本类和基类,定义常用的数据类型、数据转换、数学运算和异常处理等System.Collections.Generic包含定义泛型集合的接口和类System.Data提供对表示ADO.NET结构的类的访问System.IO包含允许读写文件和数据流的类型以及提供基本文件和目录支持的类型System.Drawing提供了对GDI+基本图形功能的访问System.Net为网络上使用的多种协议提供了简单的编程接口System.Collections.Generic包含定义泛型集合的接口和类,使用泛型集合来创建强类型集合3.1一个简单的C#程序设计命名空间类的功能System.Net.Sockets提供Windows套接字访问的方法System.Text包含ASCII、Unicode、UTF-7、UTF-8字符编码的类和用于字符处理的类System.Threading提供一些使得可以进行多线程编程的类和接口System.Windows.Forms包含创建基于Windows的应用程序的类,以利用操作系统中提供的界面功能System.Web提供使得可以进行浏览器与服务器通信的类和接口System.Xml提供对XML文档进行处理的类3.1一个简单的C#程序设计3.1.2Main方法每个应用程序包含了很多的方法,但执行必须有一个起点,也叫入口点,C#规定入口点的方法名必须为MainstaticvoidMain(string[]args)static表示该方法是静态的,void表示该方法没有返回值。Main方法的返回值只能是void类型或int类型。int类型的返回值表示应用程序结束时的终止状态代码,0表示成功返回,非0值表示错误异常编号。void类型则没有返回值。每个C#控制台和Windows应用程序中,必须有一个类包含名为Main的静态方法。如果有多个类都定义了Main方法,则必须指定其中一个为主方法作为入口点。3.1一个简单的C#程序设计3.1.3程序代码注释C#语言中常规的注释方法有两种:1.单行注释以“//”符号开始,本行中任何位于“//”之后的字符都是注释信息。2.多行注释以“/*”作为注释的开始,以“*/”作为注释的结束。在“/*”和“*/”之间的所有文字都是注释信息。例如:/*******************************************************这是多行注释,上下共三行*******************************************************/3.1一个简单的C#程序设计3.1.4控制台的输入与输出在Windows操作系统中,控制台应用程序的输入输出是通过命令提示符窗口进行的。主要通过Console类完成控制台的输入输出功能。用户可以在程序中调用方法向命令提示符窗口输出文本,也可以调用方法从命令提示符窗口读取一行或一个来自键盘输入的字符。例如示例程序中:Console.WriteLine(C#语言程序设计\n一个简单的控制台程序);Console.Read();3.1一个简单的C#程序设计1.控制台输入C#语言在Console类中提供了三种公共方法从命令提示符窗口获取输入:Read()、ReadKey()和ReadLine()。Console.Read()方法从命令提示符窗口获取一个字符的整数形式,它所对应的数据类型是int类型,遇到“Enter”键时终止。要获得实际的字符,就需要将得到的整数形式转换成字符。intcode;charcharacter;code=Console.Read();//输入字母r,code=114character=(char)code;//将整数转换成字符Console.Write(character);3.1一个简单的C#程序设计Console.ReadLine()方法从命令提示符窗口获取一行字符串,直到遇到“Enter”键时终止,返回数据类型是string类型,如果要获得int类型或double类型的数值,就需要进行转换。stringname,AgeString;intAge;//获取姓名,赋给字符串类型变量namename=Console.ReadLine();//获取年龄,赋给字符串类型变量AgeStringAgeString=Console.ReadLine();//使用年龄前,需将字符串类型转换成整数类型Age=Conver.ToInt32(AgeString);Console.WriteLine(name);Console.WriteLine(Age);3.1一个简单的C#程序设计Console.ReadKey()方法获取用户按下的一个字符或功能键,并立即终止返回一个ConsoleKeyInfo结构的对象。stringname,AgeString;intAge;//获取姓名,赋给字符串类型变量nameConsoleKeyInfoflag;do{flag=Console.ReadKey();name=Console.ReadLine();Console.WriteLine(name);}while(flag.Key!=ConsoleKey.Escape);//等待用户按下Esc键3.1一个简单的C#程序设计2.控制台输出C#语言在Console类中提供了两种公共方法向命令提示符窗口输出字符串:Write()和WriteLine()。这两种方法都是将各种值类型数据或对象转换为字符串写入标准输出流,即输出到命令提示符窗口,但是WriteLine()在输出数据后,还输出回车符(“\r”)和换行符(“\n”)。intage=20;stringname=韩梅梅;Console.Write(name);//输出字符串name,不换行Console.Write(年龄是:);//输出字符串“年龄是:”,不换行Console.Write({0}\r\n,age);//输出字符串“”,换行最后三句的输出,用Console.WriteLine()方法写成:Console.WriteLine({0}年龄是:{1},name,age);从上面的语句也可以看出Write()和WriteLine()调用参数的方法。3.2标识符和关键字3.2.1标识符标识符最多可以由511个字符组成,需要遵循下列命名规则:由字母、数字和下划线“_”组成。首字符必须是字母或下划线“_”。C#语言对字母大小写敏感。两个标识符即使是对应的字母大小写不同,也是完全不同的标识符。标识符不能与关键字同名。C#语言采用Unicode字符集,因此“字母”和“数字”的定义比常用的ASCII字符集(Unicode的一个子集)要广泛的多。标识符中的一个字母即使字体发生改变,也会成为新的标识符。下面是合法的标识符:Abcabc123@class下面是不合法的标识符:abc!//含有特殊字符“!”7abc//非法的首字符abc123//含有空格class//“class”是关键字,不能使用关键字作为标识符3.2标识符和关键字3.2.2关键字C#语言保留77个标识符作为关键字,用户不应重用这些标识符。每个关键字都有特定的含义和用途,例如在示例中已经使用过的关键字using、namespace和class。P25页3.3值类型C#是强类型语言,即每个变量和对象都必须具有声明的数据类型。从用户的角度,数据类型可分为内置数据类型(如int、char等.NETFramework预定义好的类型)和用户自定义数据类型(如class、interface等,由用户声明创建)。从数据存储的角度,则可分为值类型、引用类型和指针类型(不符合公共语言规范)。指针类型只在不受托管的代码中使用;值类型用于存储数据的值,包括Sbyte、Byte、Short、Ushort、Int、Uint、Long、Ulong、Char、Float、Double、Bool、Decimal)、枚举(enum)、结构(struct);引用类型用于存储对实际数据的引用地址,包括类、数组、接口、委托、字符串等。3.3值类型值类型和引用类型的区别:值类型只将值存放在内存中,这些值类型都存储在堆栈中。原始数据类型(如bool和int)都属于此类型引用类型的内存单元中只存放内存堆中对象的地址,而对象本身放在内存堆中3.3值类型值类型和引用类型的区别:当一个值类型的变量赋给另一个值类型的变量时,会在堆栈(stack)中保存两个相同的值;而一个引用类型的变量赋给另一个引用类型的变量时,会在堆栈中保存对同一个堆(heap)的位置的引用。3.3值类型3.3.1简单值类型1.整型整型的数据值都是整数。C#语言提供了8种整型:sbyte、byte、short、ushort、int、uint、long、ulong。它们的取值范围和占用存储空间位数各有不同,定义变量时要选择合适的数据类型,过长的类型会浪费存储资源,过短的类型不足以满足变量的变化范围。下面的语句是正确的:inta;a=321;//先定义,再赋值longb=321;//先隐式转换,再赋值longc=0x12aL;//十六进制表示intx1=10,x2,x3=30;//可以在一个语句中声明多个变量下面的语句是错误的:uintx=-49;//无符号整数不能为负bytex=300;//超出取
本文标题:第3章C编程基础.
链接地址:https://www.777doc.com/doc-2155533 .html