第一部分C#程序设计基础第1章概述1..NET和.NET框架.NET平台微软首席执行官鲍尔默:“Microsoft.NET代表了一个集合、一个环境、一个可以作为平台支持下一代Internet的可编程框架。”这里可以理解为一种进行各种应用程序开发的集成开发和执行环境。1..NET和.NET框架.NET平台.NET平台提供了多种核心的技术和服务,运用这些技术和服务能够简化基于Web的应用程序开发。1..NET和.NET框架.NET平台可开发的主要项目类型控制台应用程序Windows窗体应用程序(单机或C/S程序)ASP.NET应用程序(B/S程序)Windows控件XMLWebService手持设备应用程序等1..NET和.NET框架.NET框架.NET框架类库提供了一个可以由所有Web应用程序、Windows应用程序以及XMLWebService应用程序访问的类库公共语言运行库(CLR)负责管理和执行.NET框架类库开发的所有应用程序。在VisualStudio.NET中集成的所有编程语言编写的应用程序均需通过公共语言运行库才能运行。1..NET和.NET框架Microsoft中间语言MSILVisualStudio.NET在编译应用程序时,会将其翻译为运行时环境通用语言——MSIL。当编译完成后,CLR将管理该程序的执行。1..NET和.NET框架即时(JIT)编译当应用程序需要在某个系统上运行时,此功能可以将应用程序的MSIL代码翻译为该系统的机器语言。当.NET平台上的客户端设备启动某个基于.NET的应用程序时,该程序将会以客户端系统上的机器语言来运行。无论该程序是用什么语言开发的,它都可以完全地与其他基于.NET的应用程序和服务进行集成和交互。类加载器JIT即时编译器执行类库(中间码)RuntimeEngine机器码(目标码)编译器源代码文件EXE/DLL(中间码文件).NET程序执行过程2.C#C#是一种简单、现代、面向对象和类型安全的编程语言。C#由C和C++发展而来,是Microsoft专门为使用.NET平台而创建的。2.C#C#特点简单现代性面向对象类型安全性C#语言是完全面向对象的编程语言,是.NET平台的主流开发语言。VS.NET2008系统要求支持的操作系统:WindowsServer2003;WindowsVista;WindowsXP最低配置:1.6GHzCPU,384MB内存,1024x768显示分辨率,5400RPM硬盘建议配置:2.2GHz或更快的CPU,1024MB或更大的内存,1280x1024显示分辨率,7200RPM或更快的硬盘在WindowsVista上运行的配置要求:2.4GHzCPU,768MB内存VS.NET2012系统要求支持的操作系统:Windows7SP1(x86和x64)Windows8(x86和x64)WindowsServer2008R2SP1(x64)WindowsServer2012(x64)硬件要求:1.6GHz或更快的处理器1GBRAM(如果在虚拟机上运行,则为1.5GB)10GB的可用硬盘空间5400RPM硬盘驱动器以1024x768或更高的显示分辨率运行的支持DirectX9的视频卡第2章数据类型与表达式第3章程序流程控制第4章面向对象程序设计基础第5章常用数据类型的使用C#程序结构第一部分各章节的学习以创建控制台程序为主提示:控制台应用程序(consolapplications)是C#可以创建的几种类型的项目中最基本的类型之一。控制台应用程序的文本输出是在控制台窗口中显示的。在WindowsNT/2000/XP/Windows7/Windows8下,该控制台窗口称为命令提示符。创建控制台应用程序的步骤打开VS.2012文件新建项目在“新建项目”窗体中创建程序,如下图创建控制台应用程序的步骤创建新程序后,VS.2012会出现如下图的界面创建控制台应用程序的步骤将默认生成的程序改为//AfirstprograminC#usingSystem;namespace_0201Hello{classProgram{staticvoidMain(string[]args){Console.WriteLine(HelloWorld!);Console.ReadLine();}}}注释单行注释://多行注释:/**/usingSystem;using关键字可以引用Microsoft.NET框架类库中的现有资源。通常,在程序文件的开头使用using提示:C#的优势之一就是使程序员能使用由.NET架构提供的丰富的命名空间(namespace)。这些命名空间包含了程序员预先存储的代码,命名空间将这些代码按相关类别分组。Console就是命名空间System中的代码。System命名空间System命名空间提供了对构建应用程序所需的所有系统功能的访问类(class)在C#或其他任何面向对象语言的编程过程中,都需要编写类,并用类来创建对象。Main方法(函数)Main方法用来描述类的行为,它指示编译器从该处开始执行应用程序。每个C#应用程序都必须在组成程序的某一个类中包含Main方法。语句语句就是C#应用程序中执行操作的指令。语句之间用分号分隔,编译器通过分号来区分它们。代码格式代码格式也是编程的组成要素,它有助于良好而清晰的组织代码。推荐使用约定的格式以改进代码的结构,并能够提高代码的可读性。缩进区分大小写空白区注释控制台应用程序的输入输出Console类位于System命名空间下,该类可以将数值、字符数组以及对象集自动转换为格式化或未格式化的字符串,然后将该字符串输出。控制台应用程序的输入输出WriteLine方法将各种值类型数据或对象转换为字符串输出。booleanflag=false;intage=18;stringstr=“abc”;Console.Write(flag);Console.WriteLine(18);Console.WriteLine(str);控制台应用程序的输入输出ReadLine方法用于从标准输入流读取一行字符。该方法在用户按下回车键之前不会返回,直到用户按下回车键为止。stringstr=“abc”;str=Console.ReadLine();intprice;price=Convert.ToDecimal(Console.ReadLine());第2章数据类型与表达式C#基本数据类型变量和常量类型转换运算符和表达式1.C#基本数据类型C#中的数据类型值类型简单类型:整数类型;浮点数类型;字符类型:decimal类型;布尔类型枚举类型结构类型引用类型类类型接口类型委托类型数组类型指针类型(仅用于安全代码中)数值类型byte——8位无符号整数;sbyte——8位有符号整数;short——16位有符号整数;ushort——16位无符号整数;int——32位有符号整数;uint——32位无符号整数;long——64位有符号整数;ulong——64位无符号整数;数值类型float——32位单精度浮点数;double——64位双精度浮点数;decimal——128位高精度十进制数;字符类型char——单字符(2字节)string——字符串布尔类型boolean——布尔类型(true和false)布尔类型适用于逻辑运算,一般用于流程控制。布尔类型数据不可以用0或非0替代true和false。数值类型常使用的数据类型包括string,int和decimal如果数据用于计算,则必须是数值(通常是int或decimal)如果数据不用于计算,则应选择string类型float,double通常用于科学应用程序decimal通常用于商业应用程序中,作为任何小数的数据类型数据类型的选择数值类型数据类型的选择示例内容数据类型身份证号码薪金工作时间电话号码数量stringdecimaldecimalstringint2.变量和常量——变量变量声明;示例:stringnameString=“software”;示例:intcounterInt;变量赋值变量的命名规则变量名的第一个字符可以是字母或下划线其后字符可以是字母、数字或下划线不可以使用关键字区分大小写变量的命名约定变量名(或常量名)必须有意义变量名含有变量的数据类型(可选,在VS中,将鼠标指针停留在变量上一会儿,即可出现数据类型的提示)Camelcase:以小写字母开始,然后使每个后继单词的首字母大写,如phoneNumberPascalcase:每个单词的首字母均大写,如PhoneNumber2.变量和常量——变量2.变量和常量——常量(1)直接常量:整型常量(八进制、十进制、十六进制);实型常量;字符常量(转义符号);字符串常量。2.变量和常量——常量(1)直接常量:C#语言的整型常量默认为int类型;C#语言的浮点型常量默认为double类型。示例:inti=3;longl=3L;doubled=3.14;floatf=3.14f;对于数值常量,通过附加一个类型声明字符,可以声明数值常量的数据类型。如果没有给数值常量附加类型声明字符,则任何整数都会被假定为int类型,任何小数都会被假定为double类型decimalM/mdoubleD/dlongL/lshortS/sfloatF/f2.变量和常量——常量(1)直接常量:(2)符号常量:使用const关键字声明示例:conststringCOMPANYNAME=“CNC”;示例:constdecimalSALESTAXRATE=0.08m;符号常量的优势代码更易阅读若需修改常量值,仅需修改一次常量声明语句即可,不必在全部代码中修改对常量的每一处引用2.变量和常量——常量3.类型转换(1)隐式转换(自动转换)(2)显示转换(强制类型转换)(3)使用方法(函数)实现数据类型的转换(4)拆箱与装箱3.类型转换(1)隐式转换(自动转换)允许数值范围小的类型向数值范围大的类型转换;允许无符号数向有符号数转换。格式:(数据类型名称)(表达式)(2)显示转换(强制类型转换)示例:intx=500;shortz=(short)x;//z值为5003.类型转换Parse方法——将特定格式的字符串转换为数值.格式:数值类型名称.Parse(字符串型表达式)示例:intm=int.Parse(1234);decimalx=decimal.Parse(“3.14”);3.类型转换(3)使用方法实现数据类型的转换格式:变量名称.ToString();示例:intm=234;stringstr1=m.ToString();ToString方法——将其他类型的变量转换为字符串。System.Convert类——将一个基本数据类型转换为另一个基本数据类型。Convert类拥有针对每种数据类型的以To开始的方法。3.类型转换(3)使用方法实现数据类型的转换3.类型转换方法实现的转换类型Convert.ToInt32()intConvert.ToInt64()longConvert.ToSByte()sbyteConvert.ToSingle()floatConvert.ToUInt16()ushortConvert.ToUInt32()uintConvert.ToUInt64()ulong3.类型转换方法实现的转换类型Convert.ToBoolean()boolConvert.ToByte()byteConvert.ToChar()charConvert.ToString()stringConvert.ToDecimal()decimalConvert.ToDouble()doubleConvert