![C#编程语言基础_第1页](http://file4.renrendoc.com/view/b9e5bd342f1b61ea03079d08f2a80f79/b9e5bd342f1b61ea03079d08f2a80f791.gif)
![C#编程语言基础_第2页](http://file4.renrendoc.com/view/b9e5bd342f1b61ea03079d08f2a80f79/b9e5bd342f1b61ea03079d08f2a80f792.gif)
![C#编程语言基础_第3页](http://file4.renrendoc.com/view/b9e5bd342f1b61ea03079d08f2a80f79/b9e5bd342f1b61ea03079d08f2a80f793.gif)
![C#编程语言基础_第4页](http://file4.renrendoc.com/view/b9e5bd342f1b61ea03079d08f2a80f79/b9e5bd342f1b61ea03079d08f2a80f794.gif)
![C#编程语言基础_第5页](http://file4.renrendoc.com/view/b9e5bd342f1b61ea03079d08f2a80f79/b9e5bd342f1b61ea03079d08f2a80f795.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C#.NET是微软公司推出的一种类型安全、现代、简单、由C和C++衍生出来的面向对象的编程语言。掌握C#.NET的特点、程序结构、集成开发环境、C#语言的基本知识等,是利用好C#的前提。本章内容C#概述C#语言基础控制结构数组■异常处理1.1C#概述C#是微软公司在2000年7月发布的一种全新的简单、安全、面向对象的程序设计语言。它是专门为.NET的应用而开发的语言。.NET简介1..NET定义.NET技术是微软公司推出的一个全新概念,它代表了一个集合、一个环境和一个可以作为平台支持下一代Internet的可编程结构。.NET的目的就是将互联网作为新一代操作系统的基础,对互联网的设计思想进行扩展,使用户在任何地方、任何时间、利用任何设备都能访问所需要的信息、文件和程序。.NET平台包括.NET框架和.NET开发工具等部分。.NET框架(Framework)是整个开发平台的基础,包括公共语言运行库和.NET类库。.NET开发工具包括VisualStudio.NET集成开发环境和.NET编程语言。.NET编程语言包括VisualBasic、VisualC++和新的VisualC#等用来创建运行在公共语言运行库(CommonLanguageRun,CLR)上的应用程序。.NET框架结构如图1-1所示。VisualBasic.NETC#托管C++J#其他语言公共语言规范(CLS)ASP.NET/Web应用/Web服务 | Windows窗体应用ADO.NET与XML .NET框架基础类库 公共语言运行时操作系统图1-1.NET框架结构2.公共语言运行库公共语言运行库是.NETFramework的基础。可以将运行库看成一个在执行时管理代码的代理,它提供核心服务(如内存管理、线程管理和远程处理),而且还强制实施严格的类型安全以及可确保安全性和可靠性的其他形式的代码准确性。事实上,代码管理的概念是运行库的基本原则。以运行库为目标的代码称为托管代码,而不以运行库为目标的代码称为非托管代码。公共语言运行库管理内存、线程执行、代码执行、代码安全验证、编译以及其他系统服务。这些功能是在公共语言运行库上运行的托管代码所固有的。3..NET框架类库.NETFramework类库是一个与公共语言运行库紧密集成的可重用的类型集合,是对WindowsAPI封装的全新设计,它为开发人员提供了一个统一的、面向对象的、分层的和可扩展的庞大类库。该类库是面向对象的,使.NETFramework类型易于使用,而且还减少了学习.NETFramework的新功能所需要的时间。此外,第三方组件可与.NETFramework中的类无缝集成。例如,用.NETFramework集合类实现一组可用于开发您自己的集合类的接口。您的集合类将与.NETFramework中的类无缝地混合。.NETFramework类型使您能够完成一系列常见编程任务(包括字符串管理、数据收集、数据库连接以及文件访问等任务)。除这些常见任务之外,类库还包括支持多种专用开发方案的类型。例如,可使用.NETFramework开发下列类型的应用程序和服务:•控制台应用程序。WindowsGUI应用程序(Windows窗体)。ASP.NET应用程序。XMLWebservices。Windows服务。例如,Windows窗体类是一组综合性的可重用类型,它们大大简化了WindowsGUI的开发。如果要编写ASPNETWeb窗体应用程序,可使用Web窗体类。什么是C#1.C#及其特点C#是微软公司在2000年7月发布的一种全新且简单、安全、面向对象的程序设计语言,是专门为.NET的应用而开发的语言。它吸收了C++、VisualBasic、Delphi、Java等语言的优点,体现了当今最新的程序设计技术的功能和精华。C#继承了C语言的语法风格,同时又继承了C++的面向对象特性。不同的是,C#的对象模型已经面向Internet进行了重新设计,使用的是.NET框架的类库;C#不再提供对指针类型的支持,使得程序不能随便访问内存地址空间,从而更加健壮;C#不再支持多重继承,避免了以往类层次结构中由于多重继承带来的可怕后果。.NET框架为C#提供了一个强大的、易用的、逻辑结构一致的程序设计环境。同时,公共语言运行时(CommonLanguageRuntime)为C#程序语言提供了一个托管的运行时环境,使程序比以往更加稳定、安全。其特点有:•语言简洁。•保留了C++的强大功能。快速应用开发功能。语言的自由性。强大的Web服务器控件。支持跨平台。与XML相融合。C#与C++的比较C#对C++进行了多处改进,主要区别如下:•编译目标:C++代码直接编译为本地可执行代码,而C#默认编译为中间语言(IL)代码,执行时再通过Just-In-Time将需要的模块临时编译成本地代码。•内存管理:C++需要显式地删除动态分配给堆的内存,而C#不需要这么做,C#采用垃圾回收机制自动在合适的时机回收不再使用的内存。•指针:C++中大量地使用指针,而C#使用对类实例的引用,如果确实想在C#中使用指针,必须声明该内容是非安全的。不过,一般情况下C#中没有必要使用指针。•字符串处理:在C#中,字符串是作为一种基本数据类型来对待的,因此比C++中对字符串的处理要简单得多。•库:C++依赖于以继承和模板为基础的标准库,C#则依赖于.NET基库。C++允许类的多继承,而C#只允许类的单继承,而通过接口实现多继承。在后面的学习中会发现,C#与C++相比还有很多不同和改进之处,包括一些细节上的差别,这里就不一一列举了。C#与Java的比较C#面向对象的程度比Java高。C#中的基本类型都是面向对象的。C#具有比Java更强大的功能。C#语言的执行速度比Java快。VisualStudio.NET的集成开发环境.NET开发语言都采用了统一的集成开发环境VisualStudio.NET。下面加以介绍。
(1)VisualStudio起始页启动VisualStudio.NET后,首先看到一个如图1-2所示的起始页。在起始页可以打开已有的项目或建立新的项目。图1-2VisualStudio起始页(2)新建VisualC#.NET项目在VisualStudio.NET集成开发环境中,通过执行“文件”一“新建”一“项目”菜单命令,将会弹出“新建项目”对话框,在该对话框中,可以选择不同的编程语言来创建各种项目,这些语言将共享VisualStudio.NET的集成开发环境,如图1-3所示。图1-3“新建项目”对话框要创建新的VisualC#.NET项目,需要在该对话框的“项目类型”窗口中选中“VisualC#项目”,在“模板”窗口中选中“Windows应用程序”。然后在“位置”组合框中输入项目的保存位置(路径),在“名称”文本框中输入项目名称,如图1-3所示。然后单击“确定”按钮,将会出现如图1-4所示的VisualStudio.NET集成开发环境。
图1-4图1-4VisualStudio.NET开发环境(3)“解决方案资源管理器”窗口项目可以视为编译后的一个可执行单元,可以是应用程序、动态链接库等。而企业级的解决方案往往需要多个可执行程序的合作,为便于管理多个项目,在VisualStudio.NET集成环境中引入了解决方案资源管理器,用来对企业级解决方案设计的多个项目进行管理,如图1-5所示。(4)“类视图”窗口“类视图”窗口以树形结构显示了当前项目中的所有类,并在类中列出成员变量和成员函数。每一个类首先列出带紫色图标的成员函数,然后列出带有蓝色图标的成员变量。每个成员的图标左边都有一个标志,以表示成员类型和存储类别的信息,保护类型成员图标旁边的标志为一把钥匙,私有成员的标志是一把锁,而公有成员图标旁边没有标志。如图1-6所示。解决方案资逵管理器-Wind...解决方案资逵管理器-Wind...翼类視图pVintio加npplhz日tionZBJ解决方^u解决方^uWindowsApplication2'+上引用…國App.ico井"|Assemblylnfu.cs…FBIForrril.cs-爭删删艸肚巒删白…{}WindowsApplication2Forml+空基项和接口律Dispose(bool)・Form1()
InitializeCorn口匚「曰
詐Main():碑corripunerits±1总解…马类…习索引|图1-5图1-5“解决方案资源管理器”窗口图1-6“类视图”窗口在“类视图”窗口中双击类名,会在主工作区中打开这个类的头文件,显示出类的声明;而双击某个类的成员,则主工作区中会显示该成员的定义代码。(5)“工具箱”窗口“工具箱”窗口包含了可重用的控件,用于定义应用程序。使用可视化的方法编程时,可在窗体中“拖放”控件,绘制出应用程序界面。“工具箱”中的控件分成几组,如“数据”组、“组件”组、“Windows窗体”组。单击组名称可展开一个组。如图1-7所示。工具箱数据k指针囲DataSet矍OleDbDataAdapter鬲OleDbConnectionOleDbCommand工具箱数据k指针囲DataSet矍OleDbDataAdapter鬲OleDbConnectionOleDbCommand曜SqlDataAdapter謝5qlConnection窮5qlCommand矍OdbcDataAdapter鬲OdbcConnectionf郭OdbcCommand隍OradeDataAdapter组件 ▼Windows®#聖贴板循环常规ALinkLabelab|ButtonTextBox崗MainMenu圍CheckBox®RadioButton严1GroupBox國PictureBoxHIPanel圍DataGrid聖贴板循环常规工具箱数据组件k指针FileSystemWatcherEventLogDirectoryEntryDirectorySeardierMessageQueuePerFormanceCou・・・ProcessServiceControllerTinnerReportDocumentWindows®#I▼剪贴换循环常规图1-7“工具箱”窗口(6)“属性”窗口“属性”窗口用于设置控件的属性。属性定义了控件的信息,如大小、位置、颜色等属性”窗口左边一栏显示了控件的属性名,右边一栏显示属性的当前值。如图1-8所示。控件选择按字母排序属性名事件图标属性图标属性值属性描述控件选择按字母排序属性名事件图标属性图标属性值属性描述图1-8“属性”窗口1.1.4初识C#程序C#.NET主要用于开发三类程序:控制台程序、Windows程序和ASPNET程序。C#程序的扩展名为.CS,使用编译器CSC.EXE可编译成可执行文件。1.控制台程序案例1-1】一个简单的控制台程序。程序运行后显示“欢迎XXX进入C#世界!”,运行结果如图1-9所示。图1-9欢迎进入C#世界【技术要点】C#应用程序包含Main方法,它是C#应用程序执行的起点。在该函数中通过系统类Console的方法WriteLine(),可以在屏幕上输出字符串。【实现步骤】(1)启动VisualStudio.NET。选择主菜单“文件”一“新建”一“项目”打开“新建项目”对话框。在“新建项目”对话框中的左窗格选择“VisualC#项目”右窗格选择“控制台应用程序”,然后指定项目名称和存放位置,单击“确定”按钮。在代码编辑窗口中可看到自动生成的程序代码框架,在Main函数中加入代码。选择主菜单“生成”一“生成Welcome”进行编译和连接。选择“调试”一“启动”执行程序。【程序代码】usingSystem;namespaceWelcome{///<summary>///Class1的摘要说明///</summary>classClass1{///<summary>///应用程序的主入口点///</summary>[STAThread]staticvoidMain(string[]args){Console.WriteLine("请输入你的名字:");stringusername=Console.ReadLine();Console.WriteLine("欢迎{0}进入C#世界!",username);
}}}程序中的第一行语句“usingSystem;”的作用是导入命名空间,该语句类似于C和C++中的#include命令。导入命名空间之后,就可以自由使用其中的元素了。System是.NET框架提供的最基本的命名空间之一,Console是System命名空间中包含的系统类库中已定义的一个类。利用该类的ReadLine()和WriteLine()方法可以进行输入输出。{0}代替WriteLine方法的参数表中紧随格式串后的第一个变量。可以用该技术格式化多个变量。例如:Console.WriteLine("Hello{0}{1},from{2}",strFirstname,strLastname,strCity);namespace语句声明了一个命名空间Welcome。每个C#程序可以包含一个或多个命名空间。类、结构、接口、枚举、委托等类型都包含在命名空间中。class为定义类的关键字,类的名称为Classi。C#程序的基本单位是类。程序中的语句“staticvoidMain(string[]args);”为类Classi声明了一个主方法。在C#程序中,程序的执行总是从Main()方法开始的,一个程序只能包含一个主方法。可以通过Windows记事本来编写程序。保存的文件名为Welcome.cs。然后从开始菜单中选择“程序”―“MicrosoftVisualStudio.NET2003”—“VisualStudio.NET工具” “VisualStudio.NET命令行提示”命令,将会出现命令行。在命令行中输入命令“CSC盘符\目录\Welcome.cs”,回车即可生成可执行文件Welcome.exe。执行Welcome即可看到运行结果。2.图形界面程序案例1-2】第一个图形界面程序。设计一个程序,界面上用一个文本框输入姓名,单击“确定”按钮后,在文本框中显图1-10第一个图形界面程序示“欢迎XXX进入C#世界!”,运行结果如图1-10所示。图1-10第一个图形界面程序在按钮的单击事件privatevoidbutton1_Click(objectsender,System.EventArgse)中取出文本框中的内容,然后与“欢迎”及“进入C#世界!”相连,再赋给文本框的Text的属性。【实现步骤】(1)启动VisualStudio.NET。2)选择主菜单“文件”—“新建”—“项目”,打开“新建项目”对话框。(3)在“新建项目”对话框中的左窗格选择“VisualC#项目”,右窗格选择“Windows应用程序”,指定项目名称和存放位置后,单击“确定”按钮。从工具箱中选择文本框丽,然后抬起鼠标,在窗体的适当位置按下鼠标左键后拖动到适当大小,抬起左键。利用类似的方法再放置一个按钮创。在属性窗口中将文本框的Text属性清空,将按钮的Text属性改为“确定”。双击按钮,在按钮的单击事件中加入代码。选择工具栏中的卜运行程序。程序代码】usingSystem;usingSystem.Drawing;usingSystem.Collections;usingSystem.ComponentModel;usingSystem.Windows.Forms;usingSystem.Data;namespaceWindowsWelcome{///<summary>///Form1的摘要说明///</summary>publicclassForm1:System.Windows.Forms.Form{privateSystem.Windows.Forms.TextBoxtextBox1;privateSystem.Windows.Forms.Buttonbutton1;///<summary>///必需的设计器变量///</summary>privateSystem.ComponentModel.Containercomponents=null;publicForm1(){////Windows窗体设计器支持所必需的//InitializeComponent();////TODO:在InitializeComponent调用后添加任何构造函数代码//}///<summary>///清理所有正在使用的资源///</summary>protectedoverridevoidDispose(booldisposing){if(disposing){if(components!=null){components.Dispose();base.Dispose(disposing);}#regionWindows窗体设计器生成的代码///<summary>///设计器支持所需的方法——不要使用代码编辑器修改此方法的内容///</summary>privatevoidInitializeComponent(){this.textBox1=newSystem.Windows.Forms.TextBox();this.button1=newSystem.Windows.Forms.Button();this.SuspendLayout();////textBox1//this.textBox1.Location=newSystem.Drawing.Point(56,32);this.textBox1.Name="textBox1";this.textBox1.Size=newSystem.Drawing.Size(168,21);this.textBox1.TabIndex=0;this.textBox1.Text="";////button1//this.button1.Location=newSystem.Drawing.Point(112,72);this.button1.Name="button1";this.button1.Size=newSystem.Drawing.Size(56,24);this.button1.TabIndex=1;this.button1.Text="确定";this.button1.Click+=newSystem.EventHandler(this.button1Click);////Form1//this.AutoScaleBaseSize=newSystem.Drawing.Size(6,14);this.ClientSize=newSystem.Drawing.Size(280,117);this.Controls.Add(this.button1);this.Controls.Add(this.textBox1);this.Name="Form1";this.Text="Form1";this.ResumeLayout(false);}#endregion///<summary>///应用程序的主入口点///</summary>[STAThread]staticvoidMain(){Application.Run(newForm1());}privatevoidbutton1_Click(objectsender,System.EventArgse){textBox1.Text="欢迎"+textBox1.Text+"进入C#世界!";}}}本案例的实现步骤反映了一个Windows应用程序建立的一般步骤。除事件过程的代码是手工加入的外,其余代码都是由设计器生成的。程序的组成大体包括:导入必要的命名空间usingSystem.Drawing;usingSystem.Collections;usingSystem.ComponentModel;usingSystem.Windows.Forms;usingSystem.Data;声明命名空间namespaceWindowsWelcome(3)声明System.Windows.Forms的派生类。在该类中主要包含:•控件的定义。•构造函数Forml():调用InitializeComponent建立界面。•清理资源函数Dispose。:窗口关闭时调用,用于清理所有正在使用的资源。•初始化函数InitializeComponent():建立控件,设置控件属性,生成界面。•主函数Main():程序的运行起点,用于启动程序,建立窗口对象。•单击事件处理函数button1_Click():处理按钮单击事件。1.1.5命名空间命名空间就像在文件系统中用一个文件夹容纳多个文件一样,可以看作某些类的一个容器。通过把类放入命名空间可以把相关的类组织起来,并且可以避免命名冲突。命名空间既用于程序的“内部”组织系统,也用于“外部”组织系统(一种向其他程序公开自己拥有的程序元素的方法)。命名空间可以包含其他的命名空间。这种划分方法的优点类似于文件夹。与文件夹不同的是,命名空间只是一种逻辑上的划分,而不是物理上的存储分类。1.命名空间声明namespace关键字用于声明一个命名空间。格式如下:namespacename[.name1]...]{类型声明}其中name,name1为命名空间名,可以是任何合法的标识符。命名空间名可以包含句点。例如:namespaceN1.N2{classA{}classB()}等同于:namespaceN1{namespaceN2{classA{}classB()}}在一个命名空间中,可以声明一个或多个下列类型:类、接口、结构、枚举、委托。即使未显式声明命名空间,也会创建默认命名空间。该未命名的命名空间(有时称为全局命名空间)存在于每一个文件中。全局命名空间中的任何标识符都可用于命名的命名空间中。命名空间隐式具有公共访问权,并且这是不可修改的。2.命名空间的使用使用using指令能够引用给定的命名空间或创建命名空间的别名(using别名)。using[别名=]类或命名空间名;下面的示例显示了如何为类定义using指令和using别名:usingSystem;//usingdirectiveusingAliasToMyClass=NameSpace1.MyClass;//usingaliasforaclassnamespaceNameSpace1{publicclassMyClass{publicoverridestringToString(){return"YouareinNameSpace1.MyClass";
}}namespaceNameSpace2{classMyClass{}}namespaceNameSpace3{usingNameSpace1; //usingdirectiveusingNameSpace2; //usingdirectiveclassTest{publicstaticvoidMain(){AliasToMyClasssomevar=newAliasToMyClass();Console.WriteLine(somevar);}}}3.系统定义的命名空间命名空间分为两类:用户定义的命名空间和系统定义的命名空间。用户定义的命名空间是在代码中定义的命名空间。表1-1列出了C#常用的命名空间。表1-1C#常用的命名空间类的描述命名空间类的描述SystemSystem.CollectionSystem.DataSystem.DrawingSystem.IOSystem.NetSystem.Net.SocketsSystem.Runtime.RemotingSystem.SecuritySystemSystem.CollectionSystem.DataSystem.DrawingSystem.IOSystem.NetSystem.Net.SocketsSystem.Runtime.RemotingSystem.SecuritySystem.TextSystem.ThreadingSystem.TimersSystem.WebSvstem.Web.Mail定义通常使用的数据类型和数据转换的基本.NET类定义列表、队列、位数组合字符串表定义ADO.NET数据库结构提供对基本图形功能的访问允许读写数据列和文件提供对Windows网络功能的访问提供对Windows套接字的访问提供对Windows分布式计算平台的访问提供对CLR安全许可系统的访问ASCII、Unicode、UTF-7和UTF-8字符编码处理多线程编程在指定的时间间隔引发一个事件浏览器和Web服务器功能发送邮件信息System.Windows.Forms仓U建使用标准Windows图形接口和基于Windows的应用程序System.Windows.Forms1.2C#语言基础基本编码规则1.标识符和保留字程序员对程序中的各个元素加以命名时使用的命名记号称为标识符,如:变量名、类名、方法名等。c#语言中,标识符是以字母、下划线(_)或@开始的一个字符序列,后面可以跟字母、下划线、数字。C#语言区分大小写。一般变量名首字母小写,后面各单词首字母大写;而常量、类名、方法、属性等首字母大写。具有专门的意义和用途,不能当作一般的标识符使用的标识符称为保留字,也称为关键字,如continue、for、new、switch、default等。C#语言中的保留字均用小写字母表示。如果一定要用C#保留字作标识符,应使用@字符作为前缀。2.书写规则•每条语句以“;”结尾。•空行和缩进被忽略。•多条语句可以处于同一行,之间用分号分隔即可。3.注释有三种类型的注释语句://注释一行/*一行或多行注释*////XML注释方式“///”符号是一种特殊的注释方式,可以利用VisualStudio.NET开发工具将“///”注释转换为XML文件。XML常使用的标签有:<code>„</code><parmname="name"/><returns>„</returns><summary>„</summary><value>„</value>数据类型1.C#语言中的数据类型划分C#语言的数据类型按内置和自定义划分,有内置类型和构造类型。如图1-11所示。内置类型是C#提供的、无法再分解的一种具体类型。每种内置类型都有其对应的公共语言运行库类型(或称为.NET数据类型)。构造类型是在内置类型基础上构造出来的类型。表1-2
列出了C#包含的内置类型。内置类型数据类型objectstringbyte,sbyteint,uintshort,ushortlong,ulongcharboolfloat内置类型数据类型’double构造类型枚举数组结构集合类接口委托decimal构造类型枚举数组结构集合类接口委托图1-11按内置和自定义划分的类型表1-2内置数据类型c#类型.NET类型说 明示 例objectSystem.Object所有其他类型的基类型objectobj=null;stringSystem.String字符串类型,Unicode字符序列strings="hello";sbyteSystem.Sbyte8位有符号整型sbyteval=12;byteSystem.Byte8位无符号整型shortval=12;intSystem.Int3232位有符号整型intval=12;uintSystem.UInt3232位无符号整型uintval1=12;uintval2=32U;shortSystem.Intl616位有符号整型shortval1=12;ushortSystem.UIntl616位无符号整型ushortval1=12;longSystem.Int6464位有符号整型longval1=12;longval2=12L;ulongSystem.UInt6464位无符号整型ulongval1=23;ulongval2=23U;ulongval3=56L;ulongval4=78UL;charSystem.Char字符型,一个Unicode字符charval='h';boolSystem.Boolean布尔型,值为true或falseboolval1=true;boolval2=false;floatSystem.Float32位单精度浮点型,精度为7位floatval=12.3F;doubleSystem.Double64位双精度浮点型,精度为15〜16位doubleval=23.12D;decimalSystem.Decimal128位小数类型,精度为28〜29位decimalval=1.23M;按数据的存储方式划分,有值类型和引用类型,如图1-12所示。值类型在其内存空间中包含实际的数据,而引用类型中存储的是一个指针,该指针指向存储数据的内存位置。值类型的内存开销小,访问速度快,但是缺乏面向对象的特征;引用类型的内存开销大(在堆上分配内存),访问速度稍慢。2.值类型各种值类型总是含有对应该类型的一个值。每当把一个值赋给一个值类型时,该值实际上被复制了。值类型数据类型所有的数值类型boolean、中包含实际的数据,而引用类型中存储的是一个指针,该指针指向存储数据的内存位置。值类型的内存开销小,访问速度快,但是缺乏面向对象的特征;引用类型的内存开销大(在堆上分配内存),访问速度稍慢。2.值类型各种值类型总是含有对应该类型的一个值。每当把一个值赋给一个值类型时,该值实际上被复制了。值类型数据类型所有的数值类型boolean、char类型所有的枚举类型结构类型引用类型Y数组string类型类类型接口类型委托类型图1-12按数据的存储方式划分的类型相比,对于引用类型,仅是引用被复制了,而实际的值仍然保留在相同的内存位置。C#的值类型可以归类如下:•简单类型(Simpletypes)•枚举类型(Enumerationtypes)•结构类型(Structuretypes)C#的简单类型具有如下特性:第一,它们都是NET系统类型的别名;第二,由简单类型组成的常量表达式仅在编译时而不是运行时受检测;最后,简单类型可以按字面被初始化。C#简单类型包括:整数类型、布尔类型、字符类型(整型的一种特殊情况、实数类型以及枚举类型。(1)整数类型C#中定义了8种整数类型:字节型(sbyte)、无符号字节型(byte)、短整型(short)、无符号短整型(ushort)、整型(int)、无符号整型(uint)、长整型(long)、无符号长整型(ulong)。表示方法有:•十进制整数女口:123,-456,0。•十六进制整数以0x或0X开头,如:0x123表示十进制数291,-0X12表示十进制数-18。•无符号整数可以用正整数表示无符号数,也可以在数字的后面加上U或u,如125U。•长整数可以在数字的后面加上L或l,如125L。2)实数类型有三种实型:float、double、decimal。其中double的取值范围最广,decimal取值范围其次,但它的精度高。实型数据的表示形式有:十进制数形式由数字和小数点组成,且必须有小数点,如:0.123,1.23,123.0。•科学计数法形式女口:123e3或123E3。float型的值在数字后加f或F,如:1.23f。double型的值在数字后加D或d,如:12.8d。decimal型的值在数字后加M或m,如:99.2m。(3)字符类型字符型变量类型为char,它在机器中占16位,其范围为0〜65535,每个数字代表一个Unicode字符。字符一般是用单引号括起来的一个字符,如'a','A',也可以写成转义字符、十六进制转换码或Unicode表示形式。此外,整数也可以显式地转换为字符。常用的转义字符如表1-3所示。表1-3常用的转义字符转义符字符名字符的Unicode值转义符字符名字符的Unicode值\'单引号0x0027\f换页0x000c\"双引号0x0022\n新行0x000A\\反斜杠0x005c\r回车0x000D\0空字符0x0000\t水平制表符0x0009\a警告(产生蜂鸣)0x0007\v垂直制表符0x000B\b退格0x0008例如:charch1='A';charch2='\x0058'; //十六进制charch3=(char)88; //整数转换charch4='\u0058';//Unicode形式charch5='\r'; //转义字符(4)布尔类型布尔型数据只有true和false两个值,且它们不对应于任何整数值,在内存中占用4个字节。与C和C++相比,在C#中,true值不再为任何非零值。(5)枚举类型枚举(enum)是值类型的一种特殊形式,它从System.Enum继承而来,并为基础类型的值提供替代名称。枚举类型有名称、基础类型和一组字段。基础类型必须是一个除char类型外的内置的有符号(或无符号)整数类型(如Byte、Int32或UInt64)。enum关键字用于声明枚举类型,基本格式如下:[修饰符]enum枚举类型名[:基类型]{由逗号分隔的枚举数标识符}[;]枚举元素的默认基础类型为int。默认情况下,第一个枚举数的值为0后面每个枚举数的值依次递增1。例如:enumDays{Sun,Mon,Tue,Wed,Thu,Fri,sat}; //Sun为0,Mon为1,Tue为2, enumDays{Mon=1,Tue,Wed,Thu,Fri,Sat,Sun};//第一个成员值从1开始enumMonthNames{January=31,February=28,March=31,April=30};//指定值在定义枚举类型时,可以选择基类型,但可以使用的基类型仅限于long、int、short和byte。例如:enumMonthNames:byte{January=31,February=28,March=31,April=30};注意:下列写法是错误的:enumnum:byte{x1=255,x2};这里因为xl=255,x2应该是256,而byte型的范围是0〜256。案例1-3】定义一个职称枚举类型,输出类型中所有枚举常量。程序运行后显示结果如图1-13所示。图l-l3职称枚举型案例运行界面【技术要点】定义一个职称枚举类型,有4个枚举常量Prof(教授),AProf(副教授),Lect(讲师),TAssi(助教)。再定义一个方法,该方法有一个参数用来接受一个枚举类型的值,然后返回一个字符串。【程序代码】usingSystem;namespaceExam1_3{classClass1{enumZC{Prof,AProf,Lect,TAssi};staticstringgetZCAndValue(ZCz){stringresult;switch(z){caseZC.Prof:result=String.Format("Prof={0}",(int)z);break;ca
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025工程造价咨询合同范本的内容
- 2025小麦购销合同
- 2025农业技术推广项目合同范本
- 2025基本供货合同新范文
- 2025年矿物计量采样设备项目立项申请报告模稿
- 2025年目镜物镜项目提案报告模板
- 2025购销标准合同样式
- 2025年疾病预防控制及防疫服务项目申请报告模板
- 2025年蛋挞皮项目立项申请报告
- 护士实习心得汇编15篇
- 《钢铁是怎样炼成的》练习题(含答案)
- 2024年道路运输企业安全教育培训计划
- 急诊酒精中毒护理查房
- 施耐德低压电器选型
- 2023城镇给水排水管道原位固化法修复工程技术规程
- 碳纤维加固定额B013
- 脊柱外科进修汇报
- 测绘工程产品价格表汇编
- 拘留所教育课件02
- 语言和语言学课件
- 装饰图案设计-装饰图案的形式课件
评论
0/150
提交评论