版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
教育部普通高等教育十二五国家级规划教材
《C#程序设计教程》第3版
第1章C#代码编写基础2Ch1C#代码编写基础1.1C#语言和VS2012开发环境1.2C#项目的组织1.3控制台应用程序1.4Windows窗体应用程序1.5WPF和Silverlight应用程序1.6独立应用程序和浏览器运行的应用程序1.1C#语言和VS2012开发环境1.1.1C#语言和.NET框架1.1.2VS2012开发环境41.1.1C#语言和.NET框架C#(读作“Csharp”)是一种完全面向对象的基于.NET框架的高级程序设计语言。专门为快速编写在.NET框架上运行的各种应用程序而设计。语法简洁精心的面向对象设计与Web的紧密结合可靠的安全性与错误处理可靠的版本控制技术灵活性和兼容性。1.1.1C#语言和.NET框架Microsoft.NET框架定义Microsoft.NET框架是生成、运行.NET应用程序和WebService的组件库。包含公共语言运行库类库类库为开发和运行.NET应用程序提供了各种支持类库是与公共语言运行库紧密集成的可重用的类的集合。1.1.2VS2012开发环境VS2012开发环境1.安装VS2012速成版(ExpressEdition)--免费专业版(ProfessionalEdition)旗舰版(UltimateEdition)--本书调试用的环境2.安装VS2012SP33.配置VS2012开发环境的界面风格(可选)注意:也可以选择VS2013、VS2015等高版本开发环境1.1.2VS2012开发环境1.2C#项目的组织1.2.1命名空间1.2.2using关键字1.2.3Main方法1.2.4代码注释1.2.5通过断点调试C#程序1.2.6C#代码编写命名规范1.2C#项目的组织C#源文件的扩展名为.cs,如Welcome.cs。一个C#源文件中一般只包含一个类【建议这样做】,但也可以包含多个类,文件名和类名可以相同【建议相同】,也可以不同【包含多个类时一般不和类名相同】。调试环境下:项目编译后生成的文件默认保存在项目的bin\Debug文件夹下。发布时应该改为bin\Release。1.2.1命名空间命名空间是对类的一种划分,类似于目录和文件的划分形式。命令空间是一种逻辑划分,而非物理上的存储分类。命名空间命名空间命名空间命名空间命名空间命名空间命名空间命名空间类类类………………1.2.1命名空间静态方法调用命名空间.命名空间….命名空间.类名.静态方法名(参数,…);例如:System.Console.WritleLine(”HelloWorld!”);实例方法调用①实例化:命名空间…命名空间.类名<实例名>=new类名称(参数,…)②方法调用:实例名.方法名(参数…);例如:System.Text.StringBuilderb=newStringBuilder(); b.Append(“abcd”);
1.2.2using关键字using关键字指定引用的命名空间,例如:usingSystem.Windows.Forms;简化命名空间的层次表达形式,例如:usingWinForm=System.Windows.Form;作为语句,定义一个范围。程序执行到“}”时,就会自动释放font1对象例如:Fontfont1=newFont("Arial",10.0f);using(font1){…}1.2.3Main方法Main方法要求应用程序入口方法名规定为Main。必须声明为publicstatic返回值只能是void或者int。可以放在任何一个类中。例如:控制台应用程序和Windows窗体应用程序默认放在Program.cs文件的Program类中。1.2.4代码注释常规注释方式单行注释:以“//”符号开始,任何位于“//”符号后的本行文字都视为注释块注释:以“/*”开始,“*/”结束。任何介于这对符号之间的文字块都视为注释。XML注释方式“///”符号是一种XML注释方式在用户自定义的类型如类、接口、枚举等或者在其成员上方,或者命名空间的声明上方连续键入3个斜杠字符可以在键入方法名和参数的过程中看到用XML注释的智能提示。1.2.4代码注释#region注释方式#region预处理指令用于给程序段添加逻辑功能注释,让某一部分代码实现的逻辑功能看起来更清晰。被包围的代码还可以折叠和展开。举例:#region程序入口staticvoidMain(string[]args){...}#endregion1.2.5通过断点调试C#程序断点调试是编程人员必备素质!!!!利用断点查找程序的逻辑错误,是常用的手段之一1.设置和取消断点单击某代码行左边的灰色区域。单击设置,再次单击取消设置。鼠标右击某代码行,选择【断点】【插入断点】或者【删除断点】。单击某代码行,直接按<F9>键进行设置或取消设置。2.利用断点调试程序按<F5>执行到断点<Shift>+<F5>键终止调试。<F10>逐过程<F11>逐语句1.2.6C#代码编写命名规范类名、方法名和属性名全部使用Pascal命名法,即所有单词连写,每个单词的第一个字母大写,其他字母小写。例如HelloWorld、GetData等。变量名、一般对象名、控件对象名以及方法的参数名全部使用Camel命名法,即所有单词连写,但是第一个单词全部小写,其他每个单词的第一个字母大写。例如:userName、userAge等。如果是私有字段,为了和具有相同名字的属性名区分,私有的字段名也可以用下划线(“_”)开头,例如属性名为Age,私有字段名可以为age或者_Age。1.3控制台应用程序1.3.1控制台应用程序的输入与输出1.3.2在控制台应用程序中输出格式化数据1.3.1控制台应用程序的输入与输出控制台输出Console.Write();把各种类型的数据或对象转换成字符串写入标准输出流Console.WriteLine();与Write的区别:自动输出回车、换行符(“\r\n”);例如intage=18;strings="abc";Console.Write(age);Console.Write(s);Console.WriteLine(age);Console.WriteLine(s);1.3.1控制台应用程序的输入与输出控制台输入Console.ReadKey();标准输入流读取用户按下的字符或功能键。例如:ConsoleKeyInfoc=Console.ReadKey();Console.ReadLine();从标准输入流读取一行字符。例如:
strings=Console.ReadLine();1.3.1控制台应用程序的输入与输出快速键入C#代码方法1:连续按两次<Tab>键方法2:在要插入代码段的位置处,用鼠标右击选择“外侧代码”的办法插入代码段。例如:键入“for”三个字母后,连续按两次<Tab>键,观察系统自动插入的代码段。1.3.2在控制台应用程序中输出格式化数据在Console.Write和Console.WriteLine方法中,可直接定义数据转换为字符串后的输出格式Console.WriteLine("格式化表示",参数序列);Console.Write("格式化表示",参数序列);例如:intx=10,y=20,z=30;//输出10+20+30=60Console.WriteLine("{0}+{1}+{2}={3}",x,y,z,x+y+z);//输出60=20+30+10Console.WriteLine("{3}={1}+{2}+{0}",x,y,z,x+y+z);1.3.2在控制台应用程序中输出格式化数据格式化输出形式N—从零开始的整数,表示第几个参数。M—可选参数,整数,表示最小长度。若参数N的长度小于M,就用空格填充;如果M为负,则左对齐;如果M为正,则右对齐;格式码—可选参数,格式化代码样式。格式码:有默认位数,可用整数指定位数;
C—货币形式、D—十进制形式、F—固定精度形式、E—指数形式、N—用逗号分隔千位数字、P—百分比形式、X—十六进制形式占位符:0—强制占位符、#—有效占位符1.3.2在控制台应用程序中输出格式化数据利用string.Format方法格式化字符串先用String.Format方法拼接字符串,再用WriteLine方法输出;既可以在控制台应用程序中使用,也可以在其他应用程序中(WinForm、WPF等)使用。例如:inti=123;//d6表示不够6位左边补零strings=string.Format("{0:d6}",i); Console.WriteLine(s);1.3.2在控制台应用程序中输出格式化数据3.利用ToString方法格式化字符串如果是一个变量,使用ToString方法更简单。Console、WinForm、WPF、Silverlight、ASP.NET等应用程序都可以利用string.Format方法或者ToString方法定义数据的格式。例如:intn1=12;strings1=n1.ToString("X4");//X格式表示用十六进制输出。结果为:000Cstrings2=n1.ToString("d5");//结果:000124.控制台应用程序示例【例1-1】演示控制台应用程序的基本设计方法,以及如何在一个解决方案中包含多个应用程序项目。1.4Windows窗体应用程序1.4.1Windows窗体应用程序的特点1.4.2Windows窗体应用程序的启动和退出1.4.3窗体的创建、显示、隐藏和关闭1.4.4消息框(MessageBox)1.4.5利用WinForm控件实现输入和输出1.4.6错误提示(ErrorProvider)1.4.1Windows窗体应用程序的特点Windows窗体应用程序是在WindowsXP操作系统上开发客户端应用程序的主要开发模型,这种开发模型利用GDI+和操作系统交互。GDI(GraphicsDeviceInterface,图形设备接口)是Windows2000操作系统内核提供的功能,提供二维图形和文本处理功能以及功能有限的图像处理功能。没有三维图形和音频视频等多媒体处理功能。GDI+是WindowsXP操作系统内核提供的功能,在GDI的基础上增加了一套基于.NET框架的编程接口,从而让我们能使用C#快速实现窗体界面绘制和绘图功能。1.4.2Windows窗体应用程序的启动和退出窗体应用程序的启动和停止使用Application类提供的静态方法来启动、停止应用程序Run方法:用于在当前线程上启动应用程序消息循环,并显示窗体。Exit方法:用于停止消息循环。观察Program.cs中的Main方法。1.4.3窗体的创建、显示、隐藏和关闭如何在代码中打开一个新窗体Form2fm=newForm2();fm.Show();
或者Form2fm=newForm2();fm.ShowDialog();观察Show与ShowDialog之间的区别如何在代码中隐藏一个窗体“无模式”窗口:调用Hide方法隐藏。this.Hide();隐藏其他窗体可以调用实例名的Hide方法,例如:myForm.Hide();窗体隐藏后,其实例仍在,可重新调用Show方法再次显示。1.4.3窗体的创建、显示、隐藏和关闭如何在代码中关闭一个窗体用法1:fm.Close();关闭其他窗体用法2:this.Close();关闭当前打开的窗体用法3:Application.Exit();不论当前窗体是哪个窗体,只要调用Application的Exit方法,整个应用程序就会立即退出1.4.3窗体的创建、显示、隐藏和关闭4.注册事件事件是响应用户操作的一种技术。双击窗体设计界面上的某控件,默认会自动注册最常用的事件(例如按钮的最常用事件是Click)。选择某个控件,单击【属性】窗口中的“雷电”符号,可看到该控件对应的各种事件,双击指定的事件,可注册对应的事件。在代码中通过“+=”注册指定的事件,通过“-=”注销指定的事件。1.4.3窗体的创建、显示、隐藏和关闭【例1-2】演示Windows窗体应用程序的基本用法。1.4.4消息框(MessageBox)消息框显示消息对话框可通过检查Show方法返回的值来确定用户单击了哪个按钮注意虽然用Show方法显示消息框,但由于它本身是模式窗口,所以在消息框关闭前,不会执行它后面的代码。1.4.4消息框(MessageBox)MessageBox的Show方法提供了多种重载形式,常用有: publicstaticDialogResultShow(stringtext)publicstaticDialogResultShow(stringtext,stringcaption,MessageBoxButtonsbuttons,MessageBoxIconicon)例如:MessageBox.Show("输入的内容不正确");消息框关闭后,返回值是DialogResult枚举值之一。枚举值有:None(消息框未返回值)、OK、Cancel、Yes和No1.4.4消息框(MessageBox)Text:在消息框中显示的文本。caption:在消息框的标题栏中显示的文本。buttons:MessageBoxButtons枚举值之一,指定在消息框中显示哪些按钮。枚举值有OK、OKCancel、YesNoCancel和YesNo。icon:MessageBoxIcon枚举值之一,指定在消息框中显示哪个图标。枚举值有None(不显示图标)、Hand(手形)、Question(问号)...1.4.4消息框(MessageBox)【例1-3】演示消息框的基本用法。1.4.5利用WinForm控件实现输入和输出1.分组(Panel、GroupBox)Panel控件和GroupBox控件均用于对控件进行分组不同之处:Panel控件不能显示标题但可以有滚动条,而GroupBox控件可显示标题但不能显示滚动条。2.标签(Label)和文本框(TextBox)Label控件用于提供控件或窗体的描述性文字Text属性TextBox控件允许用户在应用程序中输入或编辑文本ReadOnly属性、Name属性、PasswordChar、Text1.4.5利用WinForm控件实现输入和输出【例1-4】演示TextBox控件的基本用法。1.4.5利用WinForm控件实现输入和输出3.复选框(CheckBox)和单选按钮(RadioButton)CheckBox选择一个或者多个选项,每个选项一般用选中和非选中两种状态表示。RadioButton一组RadioButton按钮中只能有一个处于选中状态。一旦某一项被选中,同组中其他RadioButton按钮的选中状态将自动清除。1.4.5利用WinForm控件实现输入和输出【例1-5】演示CheckBox控件和RadioButton控件的基本用法。1.4.5利用WinForm控件实现输入和输出列表(ListBox)和下拉列表(ComboBox)ListBox(列表框)控件和ComboBox(下拉框)控件均用于显示一组条目,以便操作者从中选择一条或者多条信息,并对其进行相应的处理两个控件的用法相似。常用属性和方法:SelectedIndex属性:获取或设置当前选择项的索引序号SelectedItem属性:获取或设置当前选择项的值。Count属性:获取项的个数。Items.Add方法:添加项。Items.Clear方法:清除所有项。Items.RemoveAt方法:删除指定的项。1.4.6错误提示(ErrorProvider)ErrorProvider组件一般用于提示用户输入的信息有错误,利用该组件可在指定的控件(如文本框)旁显示一个闪烁的错误图标,当用户将鼠标指针放在闪烁的图标上时,会自动显示错误信息。【例1-7】演示ErrorProvider组件的基本用法。Windows窗体编程的一些技巧(1)一、保存状态运行期间的状态应用场景:程序运行时对窗体位置或外观进行更改,下次运行时会看到上次更改的结果。常用方法:ApplicationSettings、序列化反序列化技术ApplicationSettings方法适合保存窗体运行的位置、颜色等简单的信息借助Settings.settings文件序列化与反序列化技术适合保存复杂信息的场合,可以实现对象状态的保存,也可以在多个系统间进行对象数据的传递使用二进制序列化、XML序列化两种技术实现(1)ApplicationSettings根据选择的范围,分ApplicationSettings和UserSettings。ApplicationSettings:设计时创建,运行时无法进行修改操作,即此时定义的变量属于只读的。配置信息写入到项目的App.config文件中。
适用场合:数据库连接字符串UserSettings:设计时进行创建,运行时可以进行读写操作,可通过代码进行修改和保存。配置信息写入到本机User.config文件中。
适用场合:窗体的颜色、位置和外观等修改运行时保存对配置信息的修改只需调Properties.Settings.Default.Save();(1)ApplicationSettings文件第一步:在Properties/Settings.Settings中定义变量。第二步:建立Form窗体的属性与自定义变量的绑定关系,通过属性窗口的ApplicationSettings节下的属性来完成。第三步:在Form_Closing事件中添加代码:
Properties.Settings.Default.Save();参见补充例题【E01-SerializationExample】(2)序列化与反序列化技术参见补充例题【E01-SerializationExample】Windows窗体编程的一些技巧(2)二、窗体间参数传递参见补充例题[E02-FormDataDelivery]重载的构造函数法——简单、常用可以传递参数的数值可以传递窗体上的控件或窗体本身利用公开的属性或全局变量——简单、常用定义公开的属性传递数据的窗体通常以对话框窗体形式存在利用委托和事件——复杂、功能强大Windows窗体编程的一些技巧(3)三、窗体动画的实现Timer组件的使用方法Enabled属性Start、Stop方法Tick事件窗体上控件的位置默认坐标原点在窗体的左上角控件的Left、Top、Right、Bottom属性Left、Top为读写属性Right、Bottom为只读属性Windows窗体编程的一些技巧(3)演示效果如下(E03-TextChangeExample):文字会从左到右不停的移动,并且颜色在随机变换。Windows窗体编程的一些技巧(3)演示效果如下(E04-DownBird):Windows窗体编程的一些技巧(4)【补充例题E05-Mp3Player】1.C#中调用第三方控件或组件的方法2.WindowsMediaPlayer调用时常用类AxWMPLib.AxWindowsMediaPlayer类ctlControls属性提供的各种方法Setting属性提供的各种方法WMPLib.IWMPPlaylist播放列表WMPLib.IWMPMedia媒体文件3.WindowsMediaPlayer使用时的常用事件CurrentItemChange事件PositionChange事件StatusChange事件第1章补充例题说明E01-SerializationExample演示序列化与反序列化技术E02-FormDataDelivery演示窗体间数据传递E03-TextChangeExample演示动态变化的字体和颜色E04-DownBird演示打飞鸟游戏E05-Mp3Player演示MediaPlayer组件的使用方法E06-FormLinkForm演示窗体粘连效果E07-KeyboardAndEventExample演示鼠标和键盘事件的用法E08-RichTextBoxExample演示RichTextBox控件用法可扩展实验题目计算器熟悉Button控件、TextBox控件的用法音乐播放器参考例子E05-MediaPlayer、例子E06-FormLinkForm打地鼠游戏参考例子E04-DownBird、E07-KeyboardandEventExample记事本参考例子E02-FormDelivery、E08-RichTextBoxExample1.5WPF和Silverlight应用程序1.5.1WPF应用程序1.5.2Silverlight应用程序1.5.3其他应用程序模板1.5WPF和Silverlight应用程序WPF高效率运行动画、三维图形和音频视频等多媒体功能WinForm应用程序只能靠软件来实现,无法直接利用GPU的硬件加速功能WPF和Silverlight最适用于开发在Windows7、Windows8操作系统上运行的应用程序。WPF适用于C/S客户端开发,Silverlight适用于手机和Web富客户端开发。WPF利用操作系统底层支持的DirectX实现硬件加速。1.5.1WPF应用程序1.DirectX简介1995年,DirectX1.0诞生它提供了直接读取图形硬件(显卡)的功能,但该版本还不包括3D功能。当时流行的编程接口是OpenGL,DirectX1.0刚推出时,由于众多的硬件厂家均不支持DirectX,该版本基本没有获得成功。1996年,微软推出DirectX2.0。该版本在DirectX中加入了Direct3D,用于访问3D硬件加速的高级图形功能,通过提供通用的COM编程接口使硬件和设计完全分离。1.5.1WPF应用程序1.DirectX简介1997年,微软推出DirectX3.0。此时3D游戏逐渐深入人心不少显卡生产厂家开始支持DirectX,并陆续推出3D图形加速卡。随后微软直接推出DirectX5.0(没有出现4.0版)5.0版的3D功能日益强大。使游戏中的3D技术逐渐走入成熟阶段。此时DirectX也得到了大多数知名厂商的认可和强力支持。2001年,微软发布了DirectX8.02002年,微软发布DirectX9.02006年,微软推出DirectX10.0版1.5.1WPF应用程序1.DirectX简介2009年,微软推出多线程渲染的DirectX11.0。该版本引入了ShaderModel5.0,以便让GPU从事更多的通用计算工作,而不仅仅是3D运算,从而鼓励开发人员更好地将GPU作为并行处理器来使用。随后,微软将DirectX作为Windows7、Windows8操作
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度军人离婚财产分割及军人退役后住房保障协议书3篇
- 2024房地产交易委托服务协议书大全
- 二零二五年度个人合伙环保技术合作合同范本3篇
- 二零二五年度跨国公司总经理职位聘用协议3篇
- 二零二五年度IT培训与外包服务合同2篇
- 2025版酒吧店长任期考核与激励合同范本3篇
- 二零二五年度保密技术培训保密合同模板2篇
- 二零二五年度医疗废物处理与处置合同示例2篇
- 西餐课程设计模板
- 2024年独家销售外企商品代理协议3篇
- 光明乳业财务报表分析报告
- 二年级数学上册100道口算题大全 (每日一套共26套)
- (完整版)会计准则(全文)
- 百家姓全文拼音版A4打印
- 专家论证挖孔桩专项施工方案
- IPC标准解析学习课程
- 麻花钻钻孔中常见问题的原因和解决办法
- 部分常用岩土经验值
- 萨克斯曲谱回家
- 外墙真石漆购销合同
- 艺体教研组活动记录
评论
0/150
提交评论