Microsoft©•第一章:概述•第二章:C#语言的基本原理•第三章:C#中对象的创建•第四章:面向对象的编程技术•第五章:C#编程•第六章:编写基于.NET的应用程序•第七章:使用ADO.NET访问数据•第八章:创建基于Windows的应用程序•第九章:在C#应用程序中使用XMLWebService•第十章:创建Web应用程序•十一章:应用程序设置和部署•十二章:进阶学习目标C#程序设计语言课程内容2C#语言的基本原理内容:•C#程序的基本原理•C#预定义类型•编写表达式•条件语句•循环语句Microsoft©学习完本节后,你将能够:•了解C#语句•使用大括号来组织语句•在代码中加入注释C#程序的基本原理2.1Microsoft©•程序结构构成应用程序的必要元素有哪些?怎样组织这些元素,使得编译器能够识别应用程序代码?C#程序结构2.1.1Microsoft©第一个C#程序:HelloWorld1.usingSystem;2.classHelloWorld3.{4.staticvoidMain()5.{6.Console.WriteLine(“Hello,World!”);7.}8.}HelloWorld.csMicrosoft©第一个C#程序:HelloWorld1:usingSystem;第1行:•using关键字用来引用.NET框架类库中的资源通常在程序文件的开头使用如果程序中需要多种资源,可以使用多次using•System命名空间System命名空间提供了构建应用程序所需的系统统能的访问Microsoft©第一个C#程序:HelloWorld2:classHelloWorld3:{………..8:}第2,3,8行:•类在C#或其他面向对象语言中,需要编写类使用关键字class定义一个类,类的内容放在一对{}中示例中定义了一个名为HelloWorld的类Microsoft©第一个C#程序:HelloWorld4:staticvoidMain()5:{………..7:}第4,5,7行:•Main方法Main方法是应用程序的入口点,编译器将由该处开始执行程序方法体也放在一对{}中每个C#的应用程序都必须包含Main方法Microsoft©4:staticvoidMain()5:{………..7:}第4,5,7行:•Main方法static表示Main方法是一个全局方法void表示Main方法没有任何返回值,即返回值是空参数放在小括号中定义。此处括号内没有内容,表明Main方法没有任何参数第一个C#程序:HelloWorldMicrosoft©6:Console.WriteLine(“Hello,World!”);第6行:•语句在C#中要执行的指令语句之间用;分隔,编译器通过分号来区分多个语句使用大括号{}标识某个代码块的开始和结束,从而可以对语句进行组合。大括号必须成对匹配。第一个C#程序:HelloWorldMicrosoft©6:Console.WriteLine(“Hello,World!”);第6行:•语句HelloWorld程序的主要目的就是在屏幕上显示一条问候WriteLine方法用来将问候语写到标准输出设备上。Console代表标准输出设备---屏幕,它属于System命名空间WriteLine方法是Console类的方法。访问类或对象的方法使用点取符.来完成。字符串用双引号“”表示字符串“Hello,World”是WriteLine方法的参数,表示屏幕输出的内容第一个C#程序:HelloWorldMicrosoft©•作用良好、清晰的组织代码提高代码的可读性,易于代码维护•C#的代码格式缩进区分大小写忽略空白区注释建议使用约定的代码风格C#的代码格式2.1.2Microsoft©C#的代码格式2.1.2•注释单行注释//多行注释/*和*///ThisismyfirstC#ProgramusingSystem;classHelloWorld{staticvoidMain(){Console.WriteLine(Hello,World);}}Microsoft©编译和运行HelloWorld1.usingSystem;2.classHelloWorld3.{4.staticvoidMain()5.{6.Console.WriteLine(“Hello,World!”);7.}8.}HelloWorld.cs2C#语言的基本原理内容:•C#程序的基本原理•C#预定义类型•编写表达式•条件语句•循环语句Microsoft©C#预定义类型2.2学习完本章后,你将能够:•声明并初始化变量•创建并使用字符串•创建并使用常量•执行类型转换在编写应用程序时,都必须使用某种方式表示数据,因此必须正确使用数据类型Microsoft©内置数据类型2.2.1C#的内置数据类型大致可划分为:(P25表2.1)•逻辑型:bool•文本型:char,string•整型:byte,sbyte,short,ushort,int,uint,long,ulong•浮点型:float,double,decimalMicrosoft©声明并初始化变量2.2.2第1步:声明变量•作用:通过声明变量,可以在内存中为该变量申请存储空间•语法:类型变量名;intnumberOfVisitors;stringbear;Microsoft©声明并初始化变量2.2.2第2步:初始化变量•作用:给变量分配初值•语法:变量名=初值;stringbear;bear=“Grizzly”;//声明和初始化一步完成stringbear=“Grizzly”;Microsoft©声明并初始化变量2.2.2注意事项:•bool只能取2个值:true或false•char表示单个Unicode字符,用‘’表示•使用后缀(P27页表2-2)boolisOpen=0;//错误boolisOpen=false;charc=‘A’;decimalbalance=3400.20;//错误decimalbalance=3400.20M;Microsoft©特殊字符和转义字符字符名称转义符字符名称转义符反斜线\\水平制表符\t退格\b垂直制表符\v回车\r换行\n双引号\”单引号\’•有些特殊字符无法直接放在引号中,此时要表示这些字符,必须使用转义符Microsoft©检查VisualStudio.NET中的变量•如何设置断点、使用watch窗口、单步执行DemoMicrosoft©声明并初始化字符串2.2.3•字符串表示任意长度的Unicode字符序列•字符串使用“”表示•可以使用转义字符或verbatim字符strings=HelloWorld;stringfilename=“c:\trainer\Readme.txt”;//错误或stringfilename=@“c:\trainer\Readme.txt”;Microsoft©创建并使用常量2.2.4•常量是指一旦被初始化,其数值保持不变的变量•常量通常用来表示有意义的固定数值,如圆周率•声明常量时必须对其赋值语法:const类型常量名=数值constdecimalPI=3.1415926M;//圆周率constintearthRadius=6378;//地球半径Microsoft©创建并使用枚举类型2.2.5思考题:我们经常需要从多个相关的值中进行选取,如•一种天气:晴、阴、雨、雪、雾•一周的某一天:Monday,Tuesday,…Sunday•一年的某个月:Jan,Feb,Mar…..Dec•一种对齐方式:左对齐、右对齐、居中对齐、两端对齐Microsoft©创建并使用枚举类型2.2.5•枚举类型是一组被命名的数字常量,即:一个枚举类型中包含了多个相关的数字常量,且每个常量都被赋予了一个容易记忆的“名字”•使用enum关键字创建枚举类型enumWeather{Sunny,//默认值0Cloudy,//默认值1Rain,//默认值2Snow,//默认值3fog//默认值4}Microsoft©创建并使用枚举类型2.2.5•引用枚举成员Weatherbj;bj=Weather.Sunny;//显示结果Console.WriteLine(bj);//显示Sunny,而不是数字0Microsoft©创建并使用枚举类型2.2.5•给枚举成员明确赋值enumMonth{Jan=1,Feb=2,Mar=3,……Dec=12}Microsoft©类型转换2.2.6•相容的数据类型可以混合运算。运算中,不同数据类型先被自动转换为相同数据类型,然后再进行运算。转换时低容量数据类型向高容量数据类型转换。低高byteshortintlongfloatdoubleMicrosoft©•将小容量数据类型转换成大容量数据类型时,系统自动完成,成为隐式转换•将大容量数据类型转换成小容量数据类型时,可能丢失信息,必须使用强制类型转换类型转换2.2.6intx=123456;longy=x;//将int隐式转换为longdecimald=100.99;intx=(int)d;//x的值是100,小数点后的值被舍弃2C#语言的基本原理内容:•C#程序的基本原理•C#预定义类型•编写表达式•条件语句•循环语句Microsoft©编写表达式2.3学习完本节后,你将能够:•使用运算符和创建表达式•确定运算符的优先级Microsoft©表达式和运算符2.3.1•运算符就是表达式中的符号常见运算符•增/减•算术•关系•相等•条件•赋值示例++--*/%+-====!=&&||?:=*=/=%=+=-===&=^=|=Microsoft©运算符的优先级2.3.2•按照运算符的优先级计算表达式•可以使用圆括号控制运算的顺序•左结合和右结合所有二元运算符都是左结合的赋值运算符和条件运算符是右结合的(10+20)/5结果是610+(20/5)结果是1410+20/5结果是142C#语言的基本原理内容:•C#程序的基本原理•C#预定义类型•编写表达式•条件语句•循环语句Microsoft©条件语句2.4•条件语句可以根据布尔表达式的值,有选择性的执行程序的某一部分•在C#中的条件语句有if和switch两种•if适合两个分支判断•switch适合多个分支判断Microsoft©if语句的使用方法2.4.1•语法:•else部分可选•if…else可以嵌套if(布尔表达式){语句块1;}else{语句块2;}Microsoft©if语句的使用方法2.4.1if(sales10000){bonus=0.05*sales;}else{bonus=0;}•示例:•运算符(?:)是if…else语句的缩略形式bonus=(sales1000)?(0.05*sales):0;Microsoft©switch语句的使用方法2.4.2•在互斥的多个选项中选一个,switch语句很有用•语法:switch(待测试表达式){casevalue1:语句;break;casevalue2:语句;break;……default:语句;break;}Microsoft©switch语句的使用方法2.4.2•switch表达式中求值的类型可以是整形、字符型、字符串、枚举类型•计算表达式的值并进行等值匹配。若表达式的值与某个case标记中的值相等,则执行权转到该case标记后的语句•break跳出整个switch。每个case中都必须使用break,C#不允许从一个case进入下一个case,称为不可贯穿性switch(待测试表达式){casevalue1:语句;break;casevalue2:语句;break;……default:语句;break;}Microsoft©switch语句的使用方法2.4.2•若没有任何一个case标记的值与表达式匹配,则转到default语句中;若没有定义default,则结束switch