版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
TOC\o"1-5"\h\z\o"CurrentDocument"第一章c#操作环境与应用 6ー、•NET框架 7.公共语言运行时 7.NETFramework类库 8二、VisualStudio开发环境 91、开始页面 92、解决方案资源管理器 103、代码编辑器 164、对象浏览器 175、属性窗口 186、命令窗口和即时窗口 19三、C#语言简介 191、C#的由来 202、C#的特点 20四、C#体验初步 221、创建项目 222、创建控制台应用程序 23\o"CurrentDocument"第二章数据类型 25ー、 关键字和标识符 26关键字(keyword) 26怀识符(identiner) 27常量与变量 27变量 27常量 28整数类型 29整数类型的取值范围 30字符型数据 31四、实数类型 32实型变量 32decima!类型 34五、/7寸串大型 341、可以使用加号(+)连接多个字符串成为ー个新的字符串。 342、字符串的操作 353,字符串的操作 36六、数据转换 36隐式转换 36\o"CurrentDocument"第三章运算符和表达式 41ー、 基本算术运算符 431■, 加法运算符或正值运算符+ 43减法运算符或负值运算符- 43乘法运算符・ 43除法运算Z 43模运算符% 43递增、递减运算 44位移运算符 44逻辑运算符 45逻辑与(逻辑AND)运算符& 46逻辑或(逻辑OR)运算符1 47逻辑异或(逻辑XOR)运算符A 47逻辑非(逻辑NOT)运算符! 48求补运算符〜 48条件与(条件AND)运算符&& 48条件或运算符II 48赋值运算符和表达式 49复合赋值运算符 49赋值表达式 49关系运算符和关系表达式 50关系运算符 50关系表达式 50字符和字符串运算符 51ハ、 其他运算符 51点运算符 51索引运算符 51转换运算符 52条件运算符 52\o"CurrentDocument"第四章 程序流程控制 54ー、 选择结构语句 55if语句 55switch语句 57循环语句 591、while循环语句 602、do...while语句 61for语句 62循环嵌套 64流程跳转语句 651、break语句 652、continue语句 66\o"CurrentDocument"第五章数组和集合 67ー、 ー维数组 681、数组的声明 683、foreach循环语句 69二、 多维数组 70二、 ArrayList 721、创建和定义ArrayList 722、ArrayList的操作 72HashTable 74结构和枚举 75结构 75枚举 76\o"CurrentDocument"第六章 引用类型、装箱和拆箱 79ー、 引用类型 80值类型和引用类型的关系 81拆箱和装箱 84\o"CurrentDocument"第七章 面向对象基础ー类和对象 85对象和类 86类的声明和创建 86对象的创建和调用(实例化) 87访问控制修饰符 88类的成员 89静态类(staticclass) 90面向对象设计基础 91封装(Encapsulation) 91继承(Inheritance) 92多态 92命名空间与using关键字 921、namespace关键字 932、using关键字 94类库的使用 94.NET基类库 942、类库的生成 95\o"CurrentDocument"第八章 方法成员 97ー、方法的定义 98方法定义的格式 98返回值 991、 调用静态方法 992、实例方法的调用 100三、方法参数和ref,out和params关键字 1011、方法参数 1012、ref关键字 102out关键字 1044、params参数 1055、方法的return语句 105方法的重载 108实例方法的重载 108构造方法重载 109属性 110索引器 112第九章 继承和多态 115ー、 继承 116类继承的定义 116重写基类成员 117派生类对象的多类型性 118抽象类和抽象方法 119多态 1202、 面向对象的多态性 121\o"CurrentDocument"第十章 委托和事件 124ー、委托 125委托类型定义 126委托对象的定义 127多重委托 128调用委托 130委托的参数传递 131二、事件 132事件定义 132事件的引发 133第・!"一章 接口 137使用接口的意义 138接口的定义 138接ロ的特点 141\o"CurrentDocument"第十二章 异常处理 143ー、 异常 144程序错误 144异常 145异常处理 146ラ口构化:吊处理 146异常的排除 1484ヽ出异巾 149异常类 149\o"CurrentDocument"第十三章 XML 150ー、 XML简介 151XML来历 151XML的特点 151XML应用 152二、 XML语法 153语法简介 1533、 属性 156
•ZZ«ヽ1、2、3、第十四章ヽ—・ヽ1、2、XML的读取 161读取元素值 163XML的写入 165文件操作 171文件与流 172读写文本文件 173读文本文件 173写文本文件 177第一章C#操作环境与应用NETFramework2.0VisualStutio开发环境C#开发简介完成第一个C#程序ー、.NET框架.NET框架是ー个建立、配置和运行Web服务及应用程序的多语言环境,是Microsoft公司的新一代应用程序开发平台。,NET框架包含二个部分:公共语言运行时(CommonLanguageRuntime),简称CLR:公共语言运行时是.NET框架的核心。在组件的运行期间,这个运行时环境管理内存分配、启动及结束线程和进程,并执行安全策略,同时还满足该组件対其他组件的所有依赖需求。在开发期间,这个运行时环境主要用来筒化开发工作。框架类库:.NET框架提供ー个统ー的、面向对象的、层次化的和可扩展的类库集。框架下的所有编程语言,包括C#、C++、VB等和各种脚步语言都可以使用这个类库。C#中的各种数据类型就建立在这个类库之上。VC++.C#,VB.NetVC++.C#,VB.Net/VJ#网络应网络应用(ASP.NET)图形界面(WinForms)数据库数据库操作(ADO.NET)XML(WebService).NetFramework类库(FCL)公共语言运行时(CLR)操作系统.公共语言运行时公共语言运行时(CLR)为.NET应用程序提供运行时的执行环境。它为托管代码提供管理内存、线程执行、代码执行、代码安全验证、编译以及其他系统服务。以运行时为目标的代码称为托管代码。在CLR环境中托管代码编写的任何程序语言,都被编译成与平台无关的Microsoft中间语言(MSIL)。在.NET运行时内部执行的是中间语言。MSIL是实现多语言支持的核心。CLR中包含有通用语言规范(CLS)和通用类型系统(CTS)运行时还通过实现通用类型系统(CTS)的严格类型验证和代码验证基础结构来加强代码的可靠性。CTS确保所有托管代码都是可以自我描述的。各种Micmsoft和第三方语言编译生成符合CTS的托管代码,托管代码可在严格实施类型安全的同时使用其他托管类型实例。CLR运行时自动处理对象布局并管理对象的引用,在不使用它们时自动释放。这种自动内存管理解决了两个最常见的问题:内存泄漏和无效引用。在CLR环境中,由于!L和编程语言的无关性,在.NET环境中不同编程语言可以无缝地共享代码和数据类型。运行库大大地增强应用程序的性能。尽管公共语言运行时提供许多标准运行库服务,但是它从不解释托管代码。ーー种称为JIT(Justintime)的编译方式使所有托管代码能够通过操作系统转换成本机语言运行。同时,内存管理器排除了出现零碎内存的可能性,增大内存引用区域,以进ー步提高性能。2..NETFramework类库框架类库(FCL)是可以由其他类继承和扩展或直接使用的最基本的类集。.NETFramework类库是ー个与公共语言运行库紧密集成的可重用的类库集合。FCL是面向对象的,并提供你自己的托管代码,从中导岀功能的类型。这不但是.NETFramework类型易于使用,而且还减少了学习.NETFramework的新功能所需要的时间。此外,第三方组件可与.NETFramework中的类无缝集成。正如用户对面向对象的类库所希望的那样,.NETFramework类型使用户能够完成ー系列常见编程任务(包括诸如字符串管理、数据收集、数据库连接以及文件访问等任务)。除这些常见任务之外,类库还包括支持多种专用开发方案的类型。例如,可以使用.NETFramework开发类型的应用程序:控制台应用程序WindowsGUI应用程序(Windows窗体)ASP.NET应用程序XMLWebServicesWindows服务Windows窗体类是ー组综合性的可亜用的类型,它们大大简化了WindowsGUI的开发;如果要编写ASP.NETWeb窗体应用程序,可使用Web窗体类;XMLWebService作为基于Web技术的重要发展,是类似于常见Web站点的分布式服务器应用程序组件。.NETFramework还提供类和工具的集合来帮助开发和使用XMLWebService应用程序。XMLWebServices是基于SOAP(ー种远程过程调用协议)、XML(一种可扩展的数据格式)和WSDL(Web服务描述语言)这些标准生成的。基于这些标准生成.NETFramework的目的是为了提高与非Microsoft解决方案的互操作性。二、VisualStudio开发环境VisualStudio是.NET环境下核心开发工具。VisualStudio开发环境集成了设计、开发、编辑、测试和调试等许多功能,开发人员可以方便的开发应用程序。开发环境提供了MSDN强大的动态帮助。VisualStudio是ー个自动化程度很高的系统,用户可以对其进行充分的定制。例如,用户可以完全定义自己的工具栏,包括工具栏的布局、包含的按钮及按钮的图标,还可以使用宏语言和VisualStudio提供的对象模型开展集成开发环境功能,甚至可以通过自己创建的插件来扩展它的功能。整个窗体主要由标题栏、菜单栏、工具栏、服务器资源管理器、工具箱、主窗口、解决方案资源管理器、属性窗口、帮助窗口、状态栏等区域构成。1、开始页面VisualStudio的开始页面为用户提供了一个中心位置来设置集成开发环境的参起始页-licrosoftVisualStudio文件位)««a<z)禅图&)飾文件位)««a<z)禅图&)飾XOIM(r)Baa)ttE<r)ICSh«rp25QIx—ipl«L«e<lNiahi1«bQ*Registerf»rtkelarcb11thVcbcastAJAXAp>licati«ns:A.へ3iSol3ioa33soi力!SolBtioal»^jSeUttbOf«bS»t«2打开 项3iSol3ioa33soi力!SolBtioal»^jSeUttbOf«bS»t«2打开 项目0)创建 項目(HBbsimibInt*llic«nc«D・SQLS«rv・rAnalysisS«mc«sSQLStrvtrIntecrationStrvicSQLServerReportS«rvic«v开发中心集成开发环境参数:Profile(用户文件配置)犍盘映射方案窗口布局帮助过滤器和帮助的显示方式启动VisualStudio时显示的内容2、解决方案资源管理器使用VisualStudio开发的所有应用程序是通过解决方案和项H来进行组织管理,解决方案和项目的所有管理操作都可以通过【解决方案资源管理器】来完成。2.1解决方案和项目解決方案资遇管理器ぶ至]CardGaaeふPropertiesた引用[コBlackJackGameJCardGameFramework[コDocwnentation,JImagesI」Resources:9app.config_BlackJackForm.csEULK.txtコOptionsForm.cs。电】Program,csTStartForm.csThu,05Bar2009180000GMT-K«vi«cur«isyour*v«r*(«AJAX2Plicgon?Inthissession,BryanS«lliv«nwillfirstbuild•«Mpl«AJAXapplicationusin<d・si(npatterns,advic«,andcod*SMtpl«s&oar«sp«et«drtsourctsinth*AJAXceamtmity,*nd*111thanrapos*securityvuln*r«biliti*sIatr«4«cia<E>Fr«ssi«BBlcadThu,05l*r2009180000GMT-Jtafirstlookatusin(ExpressionBl«ndforSilvrli0t2Fr««ViswalSt«4i»I~B««ksOfferfreelicreseftPressThu,05Bar2009180000GUT-Downloadchapters£ro*thr««(r«atbooksonVisualStudio2008Pro。•main,licrosoftLIK,Iatr«dueinc■icr«softSilvwlifht2,S«co»dEiitimvandProcr«Miin<licr*ioftAzureServicesPlatforaVebcasts:CreateApplicationsto...Tu«,03Bar200919.0000GMT-Findoutho«th*Axur*ServicesPlttfor«toolianditchnolvgitscanb«usedforscenariosran<incfr・consoBerVebtoenterpriseapplications.Toncanbuildnew“plicationsoroit«nd・»isti7on«sBovaloadtboSOLBat•SorvicosSBK首先,可以在开始页面中打开已有的项目或创建新的项目。在该页面中列出了一些最近打开的项目,可以单击这些项目链接直接打开对应的项目,其作用和选择【文件】I【最近的项目命令】一样。该页面中还有一些命令链接。例如【打开】'【创建】等。单击这些链接会打开相应的对话框,然后就可以在这些对话框中进行具体的操作。由于应用程序的开发越来越复杂,通常包含大量不同格式的文件,所以管理这些文件就显得非常重要。VisualStudio使用解决方案和项目来组织和管理应用程序的文件。解决方案是VisualStudio应用程序的基础,项目是构建単位。解决方案是ー个逻辑上的容器,它包含构成应用程序的项目和其他文件,一个解决方案中可以包含ー个或多个项目。除了项目之外,解决方案中还可以包含其他独立与项目的文件。这些文件分为两类:ー类是在解决方案中由于多个项目共享的文件,它们将被生成到应用程序中;另ー类是杂项文件,它们不会被生成到应用程序中,而仅仅是被解决方案引用并且属于解决方案。项目由文件组成,它的输出结果通常为可执行文件(.EXE)或动态链接库(.DLL).所有的项目都包含在解决方案之中,并且包含有唯一的项目文件(projectfile.sln)。这个项目文件中包含有项目所包含文件的列表以及它们的跟踪信息,每次保存项目时都会更新该项目文件。VisualStudio为用户提供了许多模板,用户可以使用这些项目模板创建新的项目。项目行为模型在VisualStudio中,用户和项目之间的交互存在ー组规则,这组规则叫做项目模型,它作用于应用程序的设计期间,约束着用户所能进行的操作及操作产生的结果。VisualStudio为用户提供了3种预定义的项目行为模型:基于存储的项目、基于引用的项目以及混合项目。基于存储的项目:在这种项目中,所有文件只能位于项目的根目录或子目录下,并且目录中的所有文件都将生成应用程序中。这种类型的项目虽然也含有一个项目文件,但却不用。这种类型的项目不能包含对其他项目文件的引用。Web项目就属于这种类型。基于引用的项目:在这种模型的项目中,项目所包含的文件可以保存在任何地方,项目文件用来列出并跟踪这些文件,只有那些在项目文件中列出的文件才能被生成到应用程序中。在这种类型的项目中可以包含对其他项目文件的引用。VisualStudioC++项目就是这种项目类型。混合项目:这种模型的项目同时具有上面两种模型的特点。它所包含的文件可以存储在任何地方并使用项目文件列表来跟踪它们,通常也可以包含对其他项目文件的引用。这种类型的项目包括VisualBasic和C#项目。以上行为模型在用户使用项目模板创建项目和维护项目时起作用,具体体现在向项目添加/删除项、移动/复制项和保存项等操作匕例如,在C#中可以进行删除和移除操作,而在C++项目中就不能进行删除操作,只能进行移除操作。项目的类别在C#中,主要有两种项目类别:本地项目和Web项目。这两种类别的最主要区别是组成项目的文件所处的位置不同,本地项目的组成文件位于开发计算机上,而Web项目的组成则位于Web服务器或本地文件系统上。下表列出了用户创建项目类型和项目类别。项目模板项目类别描述Windows应用程序本地项目用于创建常规的Windows桌面应用程序,它的图形化用户界面基于Windows控制台应用程序本地项目用于创建命令行应用程序,即在DOS窗口中运行的应用程序类库本地项目创建可以在其他应用程序中使用的类Windows控件本地项目用户创建Windows控件,这些控件可以在Windows应用程序中使用Web应用程序Web项目这种应用程序的用户界面由静态的或动态的页面组成,位于Web服务器上Web服务Web项目Web服务相当于!nternet环境中的组件,这也是.NET策略的核心技术之一,它也可以被其他的应用程序使用Web控件Web项目用户创建在Web应用程序中使用的控件除了表中的项目类别外,VisualStudio还给出了两个应用程序模板:空项目和空Web项目。这两个模板将创建一个空的应用程序,然后用户可以向其中添加相应的项。在VisualStudio中,可以使用【解决方案资源管理器】窗口来管理和监视项目。通常这种逻辑上的层次关系映射了它们在磁盘上的储存方式。但是,根据解决方案和项目的创建方式不同,逻辑关系不一定必须和磁盘上的储存方式相对应。使用【解决方案资源管理器】窗口【解决方案资源管理器】窗口是用户解决方案之间的一个双向接口,它提供了有关解决方案中的对象适时信息,允许用户管理这些对象。用户可以在【解决方案资源管理器】窗口中完成许多文件和项目的管理任务。例如,通过拖动来复制或移动对象、删除对象、生成解决方案和项目、设置启动项目、添加项目、添加项、打开文件和查看对象的属性等。创建新的解决方案和项目VisualStud沁使用解决方案和项目来组织应用程序所包含的各种文件。ー个解决方案可以包含一个或多个项目。我们可以先创建解决方案,然后在向这个解决方案中添加项目;也可以只创建项目,VisualStudio将自动为用户创建一个解决方案来包含新创建的项目。创建新的解决方案和项目:选择【文件】I【新建】I【项目】命令(或者单击工具栏上的【新建项目】按钮)打开【新建项目对话框】。在【新建项目】对话框中选择【项目类型】上点击要选择要建立的项目类型并在【模板】列表框中选择ー个对应类型的应用程序模板,然后在【名称】和【位置】栏中输入新项目的名称和项目文件的保存位置。单击【确定】按钮创建新的项目。如果用户所选择的项目模板存在项目创建向导,此时会打开项目创建向导。按照创建向导的提示进行操作就可以完成新建项目的创建。添加/删除项解决方案和项目中的项目主要是指各种类型的文件,包括文本文件、位图文件及源代码文件等。能够添加新项的位置有解决方案节点、项目节点以及项目下的文件夹节点。选择的添加位置不同,所能添加的文件类型也会不同,但是操作方式基本相同。用户可以添加新创建的文件,也可以添加己有的文件。当需要向解决方案或项目中添加项时,首先要选择添加项的节点,然后从【项目】菜单中选择【添加新项】或【添加现有项】命令,或者右击并从快捷菜单中选择【添加】I【新建项】。在添加新项时,选择新创建的文件类型和输入新文件的名称,VisualStudio会为用户创建并打开ー个对应类型的空文档并把它添加到用户所选择的节点下:【添加现有项】时,在已有文件列表中选择ー个文件,VisualStudio会把该文件添加到用户所选择的节点下并在已编辑器中打开该文件。删除项时,在【解决方案资源管理器】窗口中选择耍删除的项并从快捷菜单中选择【删除】命令,被删除项就会被物理删除。当删除项时,如果它们正处于打开状态,VisualStudio会自动关闭它们。添加删除项目【解决方案资源管理器】窗口中添加/删除项目:用户可以从【文件】I【添加】子菜单中选择【新建项目】或【现有项目】命令打开【添加新项目】或【添加现有项目】対话框,也可以在【解决方案资源管器】窗口中鼠标右击解决方案节点,从快捷菜单中选择【添加】子菜单中【新建项目…】或【现有项目…】命令打开这两个对话框。【添加新项目】对话框和前面介绍过的【新建项目】对话框基本相同。当添加现有项目时,只需要从【添加现有项目】对话框中选择要添加的项目文件。当解决方案中不再需要某个项目时,可以在解决方案中选择这个项目,然后选择【编辑】菜单或快捷菜单中选择【移除】命令把它从解决方案中删除。【移除】只是删除在解决方案中对该项目的引用,该项目在磁盘匕的对应文件不会被删除。2.8设置启动项目启动项目就是解决方案中首先被生成和运行的项目。在ー个解决方案中,可以存在ー个或多个启动项目。在【解决方案资源管理器】窗口中,启动项目使用粗体字显示。如果存在多个启动项目,则包含这些项目的解决方案显示为粗体。在创建解决方案时,最先被添加到解决方案中的项目默认成为启动项目。如果要把ー个项目设置为启动项目,首先在【解决方案资源管理器】窗口中选择这个项目,然后从【项目】菜单或快捷菜单中选择【设为启动项目】命令,此时这个项目就会被显示为粗体,原来的启动项目则被取消。多启动项目的设置要通过解决方案属性页对话框来完成。在【解决方案资源管理器】窗口中选择解决方案节点,从【视图】菜单或快捷菜単中选择【属性页】命令或者单击【解决方案资源管理器】窗口中的【属性】按钮打开解决方案的属性页对话框。在该对话框中,打开左边窗格中的【通用属性】节点选择【启动项目】选项,在对话框的右边选中【多启动项目】単选按钮,对【多启动项目】列表中各个项目进行设置。在【操作】列中可以设置启动调试器时是否运行相应的项目,共有3个选项:启动调试器运行项目并进行调试。启动调试器运行项目而不调试。启动调试器不运行项目。在对话框中的【上移】和【下移】按钮用于调整项目的启动顺序。在列表中,靠上的项目较先启动。设置解决方案的属性解决方案的属性在解决方案属性页对话框中完成,这些属性主要影响应用程序的生成过程。在解决方案属性页中执行的任务包括确定项目在调试器中的运行顺序,指定项目依赖性,定义和编辑解决方案与项目的生成配置。除项目设置外,介绍另外两种设置:项目依赖:允许用户指定解决方案中项目的生成顺序,即某ー项目的生成依赖于其他项目为其提供资源,在生成该项目前,必须首先生成它所依赖的项目。用户可以在这个属性页中选择解决方案中一个项目并指定它所依赖的项目。生成配置:允许指定如何生成解决方案和项目的调试版本及发行版本。可以分别指定调试版本和发行版本的生成配置,也可以同时指定所有版本的生成配置,同时还可以自定义生成配置。设置项目属性在VisualStudio.NE中,项目的属性可以分为两类,配置无关属性和配置相关属性。常见的项目配置有两种:为调试应用程序设置的配置和为最终用户发行程序设置的配置。配置无关属性就是那些影响所有项目配置的属性:而配置相关属性是指那些只影响指定项目的属性。配置无关属性在【属性】对话框中进行配置,通常包括项目的名称、保存位置及项目所对应的策略文件。每次在【解决方案资源管理器】窗口中选择ー个项目节点时,【属性】对话框就会自动显示它的配置无关性。配置相关属性则在项目页对话框中进行设置,通常包括程序集名称、启动対象及输出类型等属性。在该对话框中,用户可以针对不同的项目配置设置不同的属性值。例如,针对针对调式配置和发行配置设置不同的优化属性。耍打开项目属性页对话框,首先在【解决方案资源管理器】窗口中选择ー个项目节点,然后从【视图】菜单或快捷菜单中选择【属性页】命令或者单击【解决方案资源管理器】窗口中的工具栏的【属性】按钮,打开项目属性页对话框。项目属性对话框中,可以根据需要对其进行调整。但是,在选择项目模板创建项目时,VisualStudio.NE将根据所选择的模板来确定哪些属性配置无关属性、哪些属性配置相关属性,为用户设置各种属性的值。所以用户不需要对其进行太多的设置。生成解决方案和项目VisualStudio.NE提供了两种常用的生成配置:调试版本和发行版本。生成调试版本的应用程序主要是为了进行调试,它在生成的程序中包含大量的调试信息;发行版本主要是为了生成最终的应用程序,它对生成的代码进行充分优化,使生成的代码尺寸更小、速度更快。当生成应用程序时,可以在工具栏的【解决方案配置】下拉列表框中选择要生成的版本,然后选择【生成】丨【生成解决方案】命令或在【解决方案资源管理器】窗ロ选择解决方案节点并从快捷菜单中选择【批生成】命令,此时会打开【批生成】对话框。在【批生成】对话框中列出当前解决方案中所有项目的生成配置。在【解决方案配置】列中选择要生成的程序版本,通过使用【生成】列中的复选框来选择是否生成对应的项目配置。选择完毕以后,单击【生成】按钮可生成选择的项目;单击【重新生成】按钮将重新开始生成所有选择的项目配置:单击【生成】则只生成那些更新过的项ロ配置。【解决方案资源管理器】是用户使用最多的工具之一,所有与解决方案和项目有关的操作基本上都是在【解决方案资源管理器】窗口中完成的。3、代码编辑器代码编辑器支持VisualStudio.NE的所有编程语言,可以使用同一编辑器编辑所有语言的代码,包括C++、C#、VB、HTML、XML、及CSS等。代码编辑器主要分为3个区域;代码编辑区、指示器边距和选定内容边距。
目配?Pr»criv 目配?Pr»criv R(stria4ロ*rcs)Pr»(r*4、对象浏览器对象浏器号浏览所有娟件 ・ー•七g|*<»*> •浏览所有娟件 ・ー•七g|*<»*> •jB@CardGts« へつ()BleckJadt BlacKJtckFor*♦';Bl*ckJ*ckGMi«&FEndRtsolt♦纟Options?ora■«;Pltytr“みPry*StartForm(}Blackjack.CardGweFraBevork匐CBlackjackPropartia*--^BicratoftVisualBaitc{1iicrosoftVisvalBasic{/Microsoft.VisualB&sxc.^>plicatioi♦《}IicrosoftVisualBasicCoapil«rS«i♦OIicrosoftVisualBasicDances上。!icrosoftVisualBasieFil«I0+(}Iicrosoft.VisualBasieLo(^in<・()IicrosoftVisualBasielyS«rvic«s♦OIicrosoftVisualBasielyS«rvicas囹OascorlibB«t(daciaal)VBlackJackForaOCl«arB«tBtn_Click(object.Syst«MEv«ntAr(s)イCl.arTabl・0ガVDblI>vnBtn_Click(obj«ct,SystwEv«ntAr(s)づ〜D«alBtn_Click(object,Syst«*Ev«ntArc>)VDispos*(bool)マEndGw*SlackjackEn<QL«snlt)ExitBtn.Click(object,S尸t”EventArfs).VFiftyBtnjClick(object,S)rst«eEventAr(s)イJtGtaeResult()qVKitBtn一Click(object.SystemEventAr^s)6VMnadr«dBtft_Click(object,SystemEventArcs)靜I&itialiieCompon«nt0L»adCard(SystemTindovsForesPictur«Box,BlackjackCardGMB«Fr«»*vork.CaVLoadCardSkinI»ac«s0ベS«tVpGtm«InPlavOinternalclassBlackJackFora:Sアste・.・endows.Fo・9s.Fo・・Blackjack的成员【対象浏览器】为用户提供了查看不同组件中的对象和对象的成员,査看对象的组件不仅仅是用户解决方案中的项目,还可以是用户的项目所引用的组件以及外部组件,如.NET框架组件、COM组件。这些组件构成了【对象浏览器】的浏览范围。【对象浏览器】窗口分为:工具栏、对象窗格和描述窗格。对象窗格以树状视图的形式列出了当前浏览范围中的所有组件:成员窗格显示对应于左窗格中所选对象的所有成员;底部描述窗格显示当前所选择对象或成员的描述信息。在窗口左边树状视图中展开或收起对象节点并选择要査看的对象,成员窗格中会显示选择对象的成员,包括函数和变量,描述窗格中将会显示该对象的描述
信息,主要是成员的声明信息。根据选择内容,有时描述窗口中会显示ー些超链接,单击这些链接可以跳转到相应的对象节点上。每次用户作出ー个选择时,对象浏览器都会记录下来。因此可以通过【对象浏览器】工具栏上的前进/后退按钮,回到浏览过的位置。对象窗格以树状视图的形式显示对象的层次结构,所以用户可能浏览到级别很深的节点。对象窗格中可能包含大量的组件,因此,当用户看到子节点上的某个对象并且想查看它的定义时,可能要花大量的时间。所以用户也可以选择要查看的対象节点,鼠标右键在快捷菜单中选择【浏览定义】命令,【对象浏览器】窗口会定位到包含所选择对象的顶级节点,展开这个顶级节点就可以查找相应的对象。【对象浏览器】窗口中还可以查看对象或成员的定义或声明代码,指定所要浏览的组件(即浏览范围)以及查找特定的符号。在【对象浏览器】窗口中浏览对象和成员时,可以跳转到代码编辑器中查看它们的声明和定义代码。要査看详细的对象或成员定义,选择要査看的对象或成员,从快捷菜单中选择【转到定义】命令,在代码编辑器中打开包含定义代码的源文件,将输入光标自动定位到代码处。浏览范围是指【对象浏览器】窗口中显示和查找目标组件的对象。浏览范围包括活动项□和选择组件。活动项目浏览范围允许用户査看解决方案中当前选定项目的内容和它所引用的组件。每次改变活动项目时,【対象浏览器】窗口会及时更新反应出这种变化。在选择组件浏览范围中,可以选择想要浏览的组件。5、属性窗口属性 ▼QXBlackJackForaSystem.Windows.Forms.Form▼画幫同メ」日数据 ヘ0(ApplicationSettings田BlackJackForaSystem.Windows.Forms.Form▼画幫同メ」日数据 ヘ0(ApplicationSettings田(DataBindings)Tag日外观BackColor | |Control0Backgroundlmage QQQBlackjack.PropBackgroundlmageLayouStretchCursor Default0Font 宋体,9pt v【属性】窗口由以下几部分组Text与控件关联的文本・成。对象名称下拉列表框:在下拉列表框中选择对象名称。在【属性】窗口的工具栏上可以设置显示方式和显示内容。【属性】的工具栏上有3个可使用图标按钮,依次是【按分类排序】、【字母排序】、【事件】。中间的表格中,第一列显示属性名,第二列显示属性值。底部的提示部分显示当前所选择属性的提示信息。【属性】主要用来设计窗体或表单时显示可视控件的属性。可以在【属性】中直接修改控件的属性,这些修改直接体现在设计视图上。在软件开发中【属性】和【属性浏览器】一般结合使用。6、命令窗口和即时窗口命令窗ロ ▼QXお错误列表二]命令窗ロ在【命令窗口】模式ド,可以直接输入并执行VisualStudio提供的各级命令,包括菜单中的命令以及没有在菜单中出现的命令。使用这种方式不需要在菜单中ー级ー级搜索命令,而是在【命令窗口】中直接输入命令名称及参数就迅速执行。立即模式主要用于调试。在调式应用程序中,可以在【命令窗口】中计算表达式的值、查看和改变变量的值、调用函数和执行语句。【命令窗口】的命令模式用来直接执行VisualStudio开发环境提供的各种命令。当【命令窗ロ】处于命令模式下时,它的标题栏显示为“命令窗口”,它和DOS命令行相似。【即时窗口】操作和功能与命令窗口类似,选择【调试】I【窗口】I【即时】命令打开【即时窗口】。三、C#语言简介C#(发音为C#sharp)是ー种简单、现代、完全面向对象目.类型安全的编程语言。C#语言从C和C++语言演化而来,同时C#具备了应用快速开发(RapidApplicationDevelopment,RAD)语言的高效率和C++固有的强大能力,吸收了Java和Delphi等语言的特点和精华,是目前.NET开发的首选语言。1、C#的由来在过去的一段时间中,C和C++一直是商业软件开发领域中最具有生命力的语言。它们为程序员提供了丰富的功能,高度的灵活性和强大的底层控制力,但是利用C/C++语言开发Windows应用程序显然复杂了很多,同时也牺牲了・定的效率。与微软推出的VisualBasic等语言相比,同等级别的C/C++语言的复杂性,因此不管是经验丰富的程序员还是初涉编程的自学者都在试图寻找ー种新的语言,希望在功能与效率之间找到ー个更为理想的平衡点。以前的有些语言,以牺牲灵活性的代价来提高效率。这些解决方案对编程人员的限制过多(如屏蔽一些底层代码控制的机制),其所提供的功能能以令人满意。这些语言无法方便地同系统交互,也无法很好地和当前的网络编程相结合。对于C/C++用户来说,最理想的解决方案无疑是在快速开发的同时又可以调用底层平台的所有功能。他们想要一种和最新的网络标准保持同步并且能和已有的应用程序良好整合的环境。另外,ー些C/C++开发人员还需要在必要的时候进行ー些底层的编程。针对这ー问题,微软公司与2000年6月26日正式发布了C#oC#是一种最新的、面向对象的编程语言。C#使得程序员可以在Microsoft开发的最新的.NET平台上快速地编写Windows应用程序,而且Microsoft.NET提供了一系列的工具和服务来最大程度地开发和利用计算与通信领域。2、C#的特点正是由于C#面向对象的卓越设计,使它成为构建各类组件的理想之选——无论是高级的商业对象还是系统级的应用程序。使用简单的C#语言结构,这些组件可以方便地在XML(可扩展标记语言)网络服务中随意转化,从面使它们可以通过Internet在任何操作系统用任何语言在其上进行调用。更值得一提的是,C#并没有因为其高效的开发功能而损失C/C++原有的强大功能。它忠实地继承了C/C++的优点。C#还具备以下特点。1)简洁易用的语法C#主要从C和C++继承而来,同时吸收了Java和Delphi的优点,摒弃了C和C++中一些比较复杂的语法元素,如多父继承。C#取消了C和C++中的指针,不允许直接对内存进行操作,让代码运行在安全的环境中2)自动的资源回收机制C#和.NET的完美集成,使得C#完成拥有.NET的自动回收机制。在Windows中,提供给程序使用的一切软、硬件统称为资源。比如程序中需要在窗口上画图的笔就是ー种资源,在早期的Windows版本中,程序使用完资源后应该及时释放,否则会导致系统资源不足而运行变慢。在.NET中,由于资源使用完后由系统自动清理,所以编写C#程序,不必小心翼翼地保证及时释放资源,从而可以把更多的精力放在程序编写的逻辑上。3)与Web紧密结合网上.办公和电子商务在各行各业中得到越来越广泛的应用,B/S模式程序的市场需求越来越多。在微软的开发套件中,C#与ASP.NET是相互融合的。ASP.NET的应用程序可是使用VB.NET的语法,也可以使用C#语法。使用C#语法编写的ASP.NET结构更严谨,运行更高效。由于有了Web服务框架的帮助,对程序员来说,网络服务看起来就像是C#的本地对象。程序员能够利用他们自己已有的面向对象的知识和技巧开发Web服务。仅需要使用简单的C折吾言结构,C#组件就能够方便地为Web服务,并允许它们通过!nternet被运行在任何操作系统上的任何语言调用。4)完整的安全性与错误处理语言上的安全性与错误处理能力,是衡量一种语言是否优秀的重要依据。任何人都会犯错误,即时最熟练的程序员也不例外,如忘记变量的初始化,对不属于自己管理范围的内存空间进行修改等。这些错误常常产生难以预见的后果。一旦这样的软件被投入使用,寻找和改正这些简单错误的代价将会是让人无法承受的。C#的先进思想可以消除软件开发中的许多常见错误,并提供了包括类型安全在内的完整的安全性能。为了减少开发中的错误,C#帮助开发者通过更少的代码完成相同的功能,这不但减轻了编程人员的工作量,同时更有效的避免了错误的发生。5)版本处理技术升级软件系统中的组件(模块)是一件容易产生错误的工作,在代码修
改过程中可能对现存的软件产生影响,很有可能导致程序的崩溃。为了帮助开发人员处理这些问题,C#在语言屮内置了版本控制功能。C#提供内置的版本支持来减少开发费用,使用C#将会使开发人员更加轻易地开发和维护各种商业软件。6)灵活性和兼容性在简化语法的同时,C#并没有失去灵活性。尽管C#不是ー种无限制语言,比如:它不能用来开发硬件驱动程序,在默认状态下没有指针。但是,在学习过程中你将发现它仍然是那样的灵巧。四、C#体验初步1、创建项目1)2)3)4)5)6)选择1)2)3)4)5)6)选择[VisualC#]
新建项自打开VisualStudio2005创建项目,有三种方法:第一种:在【起始页】中单击【创建】。第二种:单击【文件】菜单,选择【新建】I【项目】创建。第三种:单击工具栏上的【新建】按钮,选择【项目】创建在【项目类型】框内选中【VisualC#】项目下的【Windows】选项。在【模板】列表内选择程序模板,如:【Windows应用程序】或【控制台应用程序】项。在【位置】文本框右边选择【浏览】按钮,选择ー个文件夹对项目进行保存或直接在文本框内进行手动更改。在【名称】名称文本框内,输入自己命名的项目名称或使用系统默认。ン单击窗口右下角的【确定】按钮,建立所要编写的应用程序。创建Windows应用程序模板①):Jヨ类库VisualStudio模板①):Jヨ类库VisualStudio/ズ勰板•m]Windows应用程序在这里修改项目名项目类型典,亚轴燃目‘す蕊鴉解决方案其他项目类型恻试项目用于创建具有»indows用户显]应用程序的项目名称G): YindowsApplicatiohl位置[): D:\MyDocumentハVisualStudio2005'projects解决方案名称®):*indgsApplistionl 叵!创建解决方案的目录也)以上7个步骤是后面创建【控制台应用程序】和【Windows应用程序】的前期步骤。2、创建控制台应用程序K1-12创建第一个控制台应用程序。1)创建【控制台应用程序】一个控制台应用程序,项目名称为htTest;解决方案名称默认,即和程序名称相同htTest。2)在代码区staticvoidMain(string[]args)后面的两大括号之间输入代码。usingSystem;〃引用MS.NET框架类库中名为System的命名空间usingSystem.Collections.Generic!〃本行在这里没用,可以删掉usingSystem.Text;〃本行在这里没用,可以删掉namespacehtTest〃用户白定义的命名空间,默认和程序名相同(classProgram〃用户自定义的类,默认为文件名(staticvoidMain(string[]args)〃C#程序的入口方法(Console.WriteLine(*HelloWorld!”);“I.屏幕丨.打印:HelloWorldConsole.ReadLineO;〃等待・个输入运行结果:,代码分析ヨ第一行usingSystem:引用Microsoft.NET框架的类库中System命名空间,using命令可以使用输入命名空间的类。第二、第三行代码分别调用了System.Collections.GenericfUusingSystem.Text命名空间,在本程序中不用可以删除;〃后面为注释;C#中的分号(;)衰示一条语句的结束:花括号{}表示一组语句,有{开始必须有}结束:namespacehtTest为自定义的一个命名空间。namespace为命名空间声明修饰符,htTest为命名空间名称,可以选择ー个认为合适的名称;classProgram定メ—个类。class为类修饰符,Programe为自定义类名,为自定义名称。staticvoidMain(string[]args)C#程序必须包含ー个Main方法,Main方法是程序的入口点,程序控制在该方法中开始和结束。该方法用来执行任务,并在任务完成后返回信息。Main方法在类的内部声明,它必须有static关键字,表明是静态方法。Void关键字表明该方法执行任务后不返回任何信息。Console.WriteLine(""HelloWorld!"");Console是调用的System命名空间中的类,WriteLine("”)是Consloe的方法,它作用是使计算机打印双引号之间的字符串,我们将双引号之间的字符通常称为字符串。Console.ReadLine();ReadLine()是Console类的输入方法之一,它用于输入一个字符串,按Enter键结束输入,这里使用是为了上句在屏幕上打印以后等待回车显示再结束。编译并运行程序。从IDE编译并运行程序。按F5犍生成并运行(也可以选择【调试】菜单中的【启动】.第二章数据类型关键字和标识符常量和变量的定义和使用整数类型、实数类型和decimal、布尔类型数值类型转换(隐式转换和显示转换)在计算机中,应用程序也是耍处理各种不同类型的数据,如整数、小数和字符等,这些就称为数据类型。我们来认识几个常见的数据类型。int:表示整数,如1、20、•168,double:表示实数,如2.5、3.14.1926,-2889.23bool:表示一个布尔值,即真(true)和假(false)。char:表示字符,如‘a’、‘A’、‘3‘、string:表示字符串,如“HelloWorld!"、“我们一—起学习C#语言”。ー、 关键字和标识符1、关键字(keyword)上面讲到“im”表示ー个整数,这说明对于C#编译器来说,int有着特定的含义,它代表了整数类型。C#中一些被赋予特定的含义,具有专门用途的字符串称为关键字,又叫保留字。C#关键字列表abstractExplicitNullStructasExternObjectSwitchbaseFalseOperatorThisboolFinallyOutThrowbreakFixedOverrideTrueByteFloatParamsTryCaseForPartialTypeofCatchForeachPrivateUintCharGetProtectedUlongCheckedGotoPublicUncheckedClassIfReadonlyUnsafeConstImplicitRefUshortContinueInReturnUsingDecimalIntSbyteValueDefaultInterfaceSealedVirtualDelegateInternalSetVolatileDoIsShortVoidDoubleLockSizeofWhereElseLongStackallocWhileEnumNamespaceStaticYieldEventNewString2,标识符(identifier)C#对各种变量、方法和类等要素命名时使用的字符列成为标识符。顾名思义,标识符是程序员己起名字的地方就叫标识符,标识符要遵守标识符的命名规则。不能与系统关键字重名。标识符由字母、下划线、数字或中文组成。标识符应以字母、中文或下划线开头。标识符中间不能包含空格。C#标识符对大小写敏感。例如:合法:numberOfstudent,i,abcll2,王老五,_name,Str_class以下不合法:$a,abc#〃除下划线外不能使用特殊字符;2abc 〃标识符不能以数字开头;string,if〃标识符不能使用系统关键字。二、 常量与变量程序中的数据包括常量和变量两种,每个常量或变量都有数据类型。1、变量变量用于存储特定数据类型的值。变量是存储信息的单元,在计算机中它对应ー个内存空间。用变量名代表其存储空间。程序能在变量中存储值和取出值。C#是强类型语言。强类型语言要求程序设计时在使用数据之前必须对数据的类型进行声明。在程序设计中很多的错误是发生在数据类型的误用上,强类型语言能够避免出现可能多的数据类型错误。另外,强类型语言能清楚的表达程序员命名的意图,使代码更具有可读性。1)声明变量变量用来存放数据,在使用变量前必须对它进行声明。变量声明的・般形式为:类型变量名例如:inti;〃声明・个整型变量istringteacherName!〃声明1个字符串变量intj,k,number!〃声明3个整型变量2)变量赋值变量的赋值使用等号(“=”),变量声明之后可以多次改变它的值。inti:〃声明一个整型变量ii=100://把100赋值给ii=300I〃i的值变为300Console.WriteLine(i);stringstudentName="张ー・;intj=5:/Z定义了变量j,同时给它们赋值为5i=j=126;〃将i,j的值都变化为126Console.WriteLine(i);K运行结果:3SIC:\¥INDO¥S\syste>3....冋X300 1I126请按任意键继续・.・丄!Il|LR代码分析ヨ第一行打印1时,i的值为300,是本行打印之前的最后一次赋值i=300:第二行打印i的值为126。i=j=126I给i赋值126。2、常量在程序设计语言中,常量是指其值在程序中设置,在程序运行过程中不能在改变的值,比如圆周率。常量默认为静态,所以不能再使用static修饰符。定义常量的关键字const,定义格式:[访问修饰符]const数据类型常量名=常量值例如:constdoublePI=3.1415926;〃定义P!为双精度数据类型的常量使用常量应注意以下几点:♦常量在声明时初始化,其值不能再修改;♦不能从变量中提取值来初始化常量;
为了阅读方便,习惯上常量名用大写字母表示;如果值是不变的,且有多处要使用该值建议该值定义为常量;常量使程序更易阅读、修改,程序中只需要修改一处,在使用该常量的所有位置都起作用。constdoublePI=3.14;//定义常量P1值为3.14double为双精度类型intr=10!〃定义整型变量并赋值为10doublearea=0I〃定义变Qarea,初始就值为〇area=r♦r*PI:〃计算网的面积Console.WriteLine("半径为{0}圆的面积为{1}:”,r,area);〃在屏幕上打印圆的面积r=5I 〃变量r重新赋值为5area=r*r*PI;〃计算圆的面积Console.WriteLine("半径为{0}圆的面积为{1}:",r,area);〃在屏幕上打印网的面枳K运行结果』S1C:\TIHD0VS\systeB32\o...-C1X聿।聿।蘊曬翻翦之请接任意键继续...第1行定义常量Pl并赋值;2ヽ3行定义T两个变量intr和doublearea;第4行进行计算;第5行打印圆的半径和面积;6、フ、8行作为圆的半径r被重新赋值并重新计算圆的面积,输出到。Console.WriteLine("半径为{0}圆的面积为{1}:",r,area):中{0}、{1}为格式化输出变量,{0}对应字符串后面的第1个变量r,{1}对应字符串后面的第2个变量area。三、 整数类型整型是类型最丰富的数据类型,其中字符型(char)也归为整数类型,因为字符型变量保存的是字符的Unico加编码值,字符型变量的值可以转换成整数类型值。整型数据类型的丰富是为了有效利用计算机的内存资源。程序设计时,选用占用内存少的类型可以降低内存的消耗。sbyte8-bit有符号整数short16-bit有符号整数int32-bit有符号整数long64-bit有符号整数byte8-bit无符号整数ushort16-bit无符号整数uint32-bit无符号整数ulong64-bit无符号整数char字符类型,Unicode编码简单类型描述整型常量可以使用“じ’和“U”所组成的后缀,“U”代表无符号,“じ’代表64位整数,如ー125u、250ULo另外在代码中使用整型常量1时,由于1符合以上任何ー种整数类型(char除外)的取值范围,编译器会把它当作哪ー个整型?C#有以下规则:1)如果该整数没有后缀,则它属于以下所列的类型中第1个能够表示其值的类型:int、uint、long、ulong这表示编译器会把1当作int类型。2)如果该整数带有后缀U或u,则它属于以下所列的类型中第1个能够代表其值的哪个类型:uint、ulong〇3)如果该整数带有后缀L或1,则它属于以下所列的类型中第1个能够代表其值的那个类型:long>unlong4)如果后缀带有UL、LU,则它属于ulong类型。U、L部分大小写,建议都使用大写字母。1、整数类型的取值范围整型数据的取值范围不需要死记硬背。每个类型都有最大值、最小值属性。Console.WriteLine("int的最大取值为:MaxValue+"int的最小取值:"+int.MinValue);2、字符型数据字符型数据char属于整数类型,但它是用来处理Unicode字符。Unicode字符是16位字符,用来表示世界上大多数已知的书面语言。Char变量以无符号16位数字的形式存储,取值范围为〇〜65535.每个数字代表ー个Unicode字符。Unicode的前128个字符(〇〜127)对应于键盘上的字母和符号,叫做ASCH码。>字符常量C#的字符常量是单引号(即撇)括起来的字符,如:‘a'‘9’等,都是字符常量,‘ガ和,A’是不同的字符常量。C#还允许使用ー种特殊形式的字符常量,就是以ー个、开头的字符序列。例如'\n,表示一个换行符。这种显示非字符的使用难以用•般形式的字符表示,所以规定使用这种形式表示。我们把它称为转义字符。常用的以“ヽ”开头的特殊字符转义序列字符名称UnicodeV单引号0x0027ド双引号0x0022\\反斜杠OxOOSCW0空0x0000\a警报0x0007\b退格符0x0008\f换页符OxOOOC\n换行符OxOOOA\r回车OxOOOD\t水平制表符0x0009\v垂直制表符OxOOOB转义字符意思就是反斜杠'ヾ后面的字符转变称为另外的意义。由于'ヤ'在C#中已经表示转移字符标识,如果要打印它,需要使用”\\"。Unicode编码使用十六进制编码代表相应的字符。‘\n’、’\x000A,,'\xA"和,\xa,是同一意思。Console.Write(*\x48\x65\x6c\x6f\r\n*);Console.Write(*\x57\x6f\x72\x6c\n*);K运行结果]]SIC:\VIND0VS\systeB32\...二口XHelo HiUorl*请按任意键继续...±1I「代码分析ヨ本例使用转义字符在屏幕上打印’HelloWorld",多个转义字符在ー起时可以把它们放在双引号内。>字符变量字符变量用来存放字符常量,注意只能放ー个字符,ー个字符变量中只能存放一个字符常量。字符变量的定义方式:charcl,c2;cl和c2为字符变量,可以各放ー个字符,我们可以使用赋值语句:cl='a';c2='b'四、实数类型实数在C#语言中称为浮点数。在程序中有2种表现形式。十进制数形式:十进制数由数字和小数点组成。。.158(也可以表示在.158)、125.0、〇〇等都是十进制形式的实数。指数形式:指数形式又叫科学计数法,如12363或123£3都代表123*10\E或e之前必须有数字,且E后的指数必须为整数。数据类型描述float32-bit单精度浮点数double64-bit双精度浮点数decimal28个有效数字的128-bit十进制类型1、实型变量C#中有2种基本浮点格式:单精度和双精度,float表示单精度浮点数,double表示双精度浮点数。实型常量可以使用”F‘和''D”所组成的后缀。如果未使用后缀,默认为doublefloatf=123456789f;Console.WriteLine(f);f=12345.6789f;Console.WriteLine(f);K运行结果!]31C:\fIin)O¥S\syste...二口X1.234568E+08 ▲12345.68请按任意键继续...■・1I 2J/K代码分析]]从运行结果可以看出,float最多只能包含?位有效数字,数字123456789放入Jloat类型中将会被舍去最后2位。后3位进行舍入计算后变为800。于第二次赋值后,我们可以看到,经过舍入运算后,小数点后面保留2位.我们再看ー个例子:floatf=2.58f;doubled=f+6.1;Console.WriteLine(d);K运行结果》QQC:\¥IND0TS\systeB32...-□X8.67999992370605 一请按任意键继续...•J<1 」 上!ンK代码分析!]结果可能让人惊讶,出现这种错误的原因是float的小数部分的存储结构跟double不同〇/loat^double数字类型相加时将f转换为double类型时出现偏差。由于默认把ー个小数当成double类型,所以应当尽量使用double进行运算而不Afloat〇浮点运算在超出范围时不会抛出异常。Console.WriteLine(2e300*2e300):Console.WriteLine(100d/Od);Console.WriteLine(Od/Od);
(运行结果》Q1C:\VIND0VS\systeB3...二0X无无数按—
正正看<无无数按—
正正看<C:\WIND0WS\system32\K代码分析》第1行代码中,2e300*2e300结果超出了double的表示范围,返回正无穷大;第2行除数不能为0结果也返回无穷大;第3行返回非数字又表示为NaN:注意^3行代码运行时都没有报错。2、decimal类型decimal类型相比double具有更高精度的,适合财务和货币运算。它占用128位,范围和精度大致为28〜29位有效位。Decimal的后缀为m或M。如果没有m,系统将自动被视为double,从而导致编译错误。decimal类型在进行数学运算时,如果出现超出范围或除零现象,将会抛出异常。五、字符串类型字符串是任何ー个应用程序使用最多的数据类型之一。字符串常量是由一对双括号起来的字符序列。它和字符常量不同,字符常量表示的是ー个字符,字符串是字符的集合。字符串变量用来存放字符串常量,定义方式如ド:strings); 〃定义ー个字符串变量sistrings2ゴHelloWord”;〃定义ー个字符串变量s2,并进行初始化。1、可以使用加号(+)连接多个字符串成为ー个新的字符串。stringsi="Hello":strings2="World";si=sl+s2+"!":Console.WriteLine(sl);K输出结果』Q]C:\VIND0VS\systea32\cB...一0XTOC\o"1-5"\h\zHelloWorld? 、」请按任意键继续... コ<1I ],代码分析ヨ定义变量sl,s2并分别赋值:第3行sl+s2+ッ通过+将变量sl,s2和常量”!”连接起来组成一个新的字符串,并将新字符串的值赋给变量3;第4行打印变量si的值到屏幕乙2、字符串的操作1)在程序中,ー个文件的路径需要以字符串的形式来表示。如一个文件的完全路径:“D:\Demo\C#basic\test.txt”,我们知道在字符串中、被当作转义字符的标识。如果要表示一个、,必须使用\\,所以路径名称在中应该写为"D:\\Demo\\C#basic\\test.txt“。或者使用@,@表示它后面所代表的是ー个文本,不处理转义符。这样路径就可以写为:@,,D:\\Demo\\C#basic\\test.txf,〇2)IndexOf。方法和しastIndexOf()方法这两个方法是在字符串中搜索指定的字符或字符串索引。IndexOf。是从前向后搜索,LastlndexOf。是从后向前操作。strings="HelloWorld!Console.WriteLine(s.IndexOf("o"));Console.WriteLine(s.LastlndexOf("o"));Console.WriteLine(s.IndexOf("11"));Console.WriteLine(s.IndexOf("OK"));K运行结果1]国C:\¥INDO¥S\syste>3 ー冋x|472请按任意键继续・・・・ヨ±1 1「代码分析)第2行,从前向后搜索字符〇在字符串中的位置,返回第一个出现〇的位置(字符串索引臓开始,即0位第一位);第3行,从后向前搜索,返回从后向前搜索字符串的第一个。的位置:第4行,从前向后搜索字符串II;第5行,从字符串中查找中ok,没有找到,返回ー1,返回值一1表示无法找到匹配的字符或字符串。3、字符串的操作Trim()去掉字符串两边空格;ToUpper()方法把字符串内所有的字母转为大写。strings=*HelloWorld!”:Console.WriteLine(*[*+s+"]");s=s.TrimO;s=s.ToUpper();Console.WriteLine(*[*+s+*]*);R运行结果)]OSC:\¥IIDOfS\syste...一回X[HelloWorldf] .[HELLOWORLD?]请按任意键继续・.・<1I お『代码分析)第1、2行代码显示没有进行方法处理的显示结果:第3行去掉字符串前后的空格:第4行将变量s中的值统ー改为大写。第5行显示经过处理的数据结果。い为了明显区别显示结果。六、数据转换数据类型转换是指相互兼容的数据类型之间数值的相互转换。例如,将一个整数类型变量赋值给一个双精度类型变量:将一个双精度类型变量赋值给ー个整数类型变量。数值类型转换分为隐式转换和显示转换。1、隐式转换隐式转换是指数据类型之间转换不需强制类型说明就可以进行。隐式转换是在C#内部实现转换,不需要任何说明。隐式数据转换表:从到sbyteshort>int、long、float、double或decimalbyteshort、ushort、int、uint、long>ulongfloat、double或decimalshortint>long、float>double或decimal□shortint、uint、long、ulong、float、double或decimalintlong、float、double或decimaluintlong>ulong、float>double或decimallongfloat>double或decimalcharushort、int、uint、long、ulong、float.double或decimalfloatdoubleulongfloat、double或decimal如:doubled=10f+9+,a,+2.5s由于等号左边变量d是ー个double类型,所以右边表达式的计算结果必须是ー个double类型.由于各种数据类型之间无法进行混合运算,所以在运算之前,必须把每个数据转换为同一种同时可以包容这几种数据的类型,由于2.5是double型,所有类型将先转换为double型后オ进行计算。①10f是•个float类型,它将被隐式地转化为double型再进行运算。②9被计算机默认为int,在这里也需要被隐式地转化为double型。③‘ガ是ー个字符型数值,它的本质是ー个16位无符号整数,也可以隐式地转化为double型。‘a'的Unicode编码是97,这里将被转化为双精度浮点数97.④2.5是实型常数,没有后缀,计算机默认为double,不需要进行转化。最终,表达式将转化为:10d+9d+97d+2.5d,运行结果为118.5〇对于数字而言,占用空间小的类型到占用类型大的或者空
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度药品研发项目质量监督与医疗器械研发合作合同3篇
- 《湖南师范大学》课件
- 意义未明的单克隆免疫球蛋白病病因介绍
- 新疆警察学院《材料成型工艺与装备》2023-2024学年第一学期期末试卷
- 污水处理厂bot项目特许经营协议示范文本模板
- 梦幻卧室室内设计中的卧室布置技巧
- 浴场劳动合同范例
- 船舶拆解销毁合同范例
- 广州住宅合同范例
- 租摆养护合同范例
- 有机肥料及微生物肥料行业的技术创新与知识产权保护
- 典范英语2a练习册
- 汽车二级维护操作技术课件
- 《苏州博物馆分析》课件
- 《食品安全知识》课件
- 大中小学思政课一体化背景下初中“道法课”教学优化研究
- 03K132 风管支吊架图集
- ERAS理念下疼痛管理
- 国家安全教育学习通章节答案期末考试题库2023年
- 习近平总书记关于教育的重要论述研究(安庆师范大学版)学习通超星课后章节答案期末考试题库2023年
- 中国石化hse管理体系手册
评论
0/150
提交评论