《C#代码编写基础》PPT课件.ppt_第1页
《C#代码编写基础》PPT课件.ppt_第2页
《C#代码编写基础》PPT课件.ppt_第3页
《C#代码编写基础》PPT课件.ppt_第4页
《C#代码编写基础》PPT课件.ppt_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

教育部普通高等教育十二五国家级规划教材 C#程序设计及应用教程第3版 (包括简化版:C#程序设计教程第3版) 第1章 C#代码编写基础,2,Ch1 C#代码编写基础,1.1 C#语言和VS2012开发环境 1.2 C#项目的组织 1.3 控制台应用程序 1.4 Windows窗体应用程序 1.5 WPF和Silverlight应用程序 1.6 独立应用程序和浏览器运行的应用程序,1.1 C#语言和VS2012开发环境,1.1.1 C#语言和.NET框架 1.1.2 VS2012开发环境,4,1.1.1 C#语言和.NET框架,C#(读作“C sharp”)是一种完全面向对象的基于.NET框架的高级程序设计语言。 专门为快速编写在.NET框架上运行的各种应用程序而设计。 语法简洁 精心的面向对象设计 与Web的紧密结合 可靠的安全性与错误处理 可靠的版本控制技术 灵活性和兼容性。,1.1.1 C#语言和.NET框架,Microsoft.NET框架 定义 Microsoft.NET框架是生成、运行.NET应用程序和Web Service的组件库。 包含 公共语言运行库 类库 类库为开发和运行.NET应用程序提供了各种支持 类库是与公共语言运行库紧密集成的可重用的类的集合。,1.1.1 C#语言和.NET框架,Microsoft.NET框架 特点:一种框架多种语言 支持C#语言、VB.NET语言、C+和C+.NET语言、F#语言等高级语言 注意 用基于.NET框架开发的应用程序,不论使用的是哪种高级语言,均必须在安装了.NET框架的计算机上才能运行。这种架构与Java应用程序必须由Java虚拟机支持相似。 思考 如何实现一种框架多种语言?,1.1.1 C#语言和.NET框架,Microsoft.NET框架-公共语言运行库 公共语言运行库 是.NET框架的基础,为多种编程语言提供统一的运行环境。 托管代码 以运行库为目标的代码称为托管代码,例如C#。 非托管代码 不以运行库为目标的代码称为非托管代码,例如C+。,1.1.1 C#语言和.NET框架,Microsoft.NET框架-公共语言运行库 中间语言IL 使用.NET框架提供的编译器可直接将源程序编译为.EXE或者.DLL文件,此时编译出来的程序代码并不是CPU能直接执行的机器代码,而是一种中间语言IL代码。 使用中间语言代码的优点 可以实现平台无关性,即与特定的CPU无关; 只要能将某种语言编译为IL代码,就可以实现这些语言之间的交互操作。,1.1.1 C#语言和.NET框架,即时编译 执行时CLR会将需要的IL代码装入内存,通过JIT编译器(Just-In-Time)将其编译成所用平台的CPU可直接执行的机器代码。 即时编译并不是一次把整个应用程序全部编译完,而是只编译它调用的那部分代码所在的模块。 为什么要采用即时编译 JIT编译器可以有效地提高系统的性能。 可利用现有CPU和GPU硬件提供的功能即时生成优化后的可执行代码。,1.1.2 VS2012开发环境,VS2012开发环境 1安装VS2012 速成版(Express Edition)-免费 专业版(Professional Edition) 旗舰版(Ultimate Edition)-本书调试用的环境 2安装VS2012 SP3 3配置VS2012开发环境的界面风格(可选) 深色 浅色,1.1.2 VS2012开发环境,1.2 C#项目的组织,1.2.1 命名空间 1.2.2 using关键字 1.2.3 Main方法 1.2.4 代码注释 1.2.5 通过断点调试C#程序 1.2.6 C#代码编写命名规范,1.2 C#项目的组织,C#源文件的扩展名为.cs,如Welcome.cs。 一个C#源文件中一般只包含一个类【建议这样做】,但也可以包含多个类,文件名和类名可以相同【建议相同】,也可以不同【包含多个类时一般不和类名相同】。 调试环境下:项目编译后生成的文件默认保存在项目的binDebug文件夹下。发布时应该改为binRelease。,1.2.1 命名空间,命名空间 是对类的一种划分,类似于目录和文件的划分形式 。 命令空间是一种逻辑划分,而非物理上的存储分类。,1.2.1 命名空间,静态方法调用 命名空间.命名空间.命名空间.类名.静态方法名(参数,); 例如:System.Console.WritleLine(”Hello World!”); 实例方法调用 实例化: 命名空间命名空间.类名 = new 类名称(参数,) 方法调用: 实例名.方法名(参数) 例如: System.Text.StringBuilder b = new StringBuilder(); b.Append(“abcd”);,1.2.2 using关键字,using关键字 指定引用的命名空间,例如: using System.Windows.Forms; 简化命名空间的层次表达形式,例如: using WinForm=System.Windows.Form; 作为语句,定义一个范围。 程序执行到“”时,就会自动释放font1对象 例如: Font font1 = new Font(“Arial“, 10.0f); using (font1) ,1.2.3 Main方法,Main方法要求 应用程序入口方法名规定为Main。 必须声明为public static 返回值只能是void或者int。 可以放在任何一个类中。,1.2.4 代码注释,常规注释方式 单行注释:以“/”符号开始,任何位于“/”符号后的本行文字都视为注释 块注释:以“/*”开始,“*/”结束。任何介于这对符号之间的文字块都视为注释。 XML注释方式 “/”符号是一种XML注释方式 在用户自定义的类型如类、接口、枚举等或者在其成员上方,或者命名空间的声明上方连续键入3个斜杠字符 可以在键入方法名和参数的过程中看到用XML注释的智能提示。,1.2.4 代码注释,#region注释方式 #region预处理指令用于给程序段添加逻辑功能注释,让某一部分代码实现的逻辑功能看起来更清晰。 被包围的代码还可以折叠和展开。 举例: #region 程序入口 static void Main(string args) . #endregion,1.2.5 通过断点调试C#程序,断点调试是编程人员必备素质! 利用断点查找程序的逻辑错误,是常用的手段之一 1设置和取消断点 单击某代码行左边的灰色区域。单击设置,再次单击取消设置。 鼠标右击某代码行,选择【断点】【插入断点】或者【删除断点】。 单击某代码行,直接按键进行设置或取消设置。 2利用断点调试程序 按执行到断 +键终止调试。 逐过程 逐语句,1.2.6 C#代码编写命名规范,类名、方法名和属性名全部使用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的区别:自动输出回车、换行符(“rn”); 例如 int age = 18; string s = “abc“; Console.Write(age); Console.Write(s); Console.WriteLine(age); Console.WriteLine(s);,1.3.1 控制台应用程序的输入与输出,控制台输入 Console.ReadKey(); 标准输入流读取用户按下的字符或功能键。 例如:ConsoleKeyInfo c=Console.ReadKey(); Console.ReadLine(); 从标准输入流读取一行字符。例如: string s = Console.ReadLine();,1.3.1 控制台应用程序的输入与输出,快速键入C#代码 方法1:连续按两次键 方法2:在要插入代码段的位置处,用鼠标右击选择“外侧代码”的办法插入代码段。 例如: 键入“for”三个字母后,连续按两次键,观察系统自动插入的代码段。,1.3.2 在控制台应用程序中输出格式化数据,在Console.Write和Console.WriteLine方法中,可直接定义数据转换为字符串后的输出格式 Console.WriteLine(“格式化表示“, 参数序列); Console.Write(“格式化表示“, 参数序列); 例如: int x=10, y=20, z=30; /输出10+20+30=60 Console.WriteLine(“0+1+2=3“, x, y, z, x+y+z); /输出60=20+30+10 Console.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等)使用。 例如: int i = 123; /d6表示不够6位左边补零 string s = string.Format(“0:d6“, i); Console.WriteLine(s);,1.3.2 在控制台应用程序中输出格式化数据,3利用ToString方法格式化字符串 如果是一个变量,使用ToString方法更简单。 Console、WinForm、WPF、Silverlight、ASP.NET等应用程序都可以利用string.Format方法或者ToString方法定义数据的格式。 例如: int n1 = 12; string s1 = n1.ToString(“X4“); /X格式表示用十六进制输出。结果为:000C string s2 = n1.ToString(“d5“); /结果:00012,4控制台应用程序示例,【例1-1】 演示控制台应用程序的基本设计方法,以及如何在一个解决方案中包含多个应用程序项目。,1.4 Windows窗体应用程序,1.4.1 Windows窗体应用程序的特点 1.4.2 Windows窗体应用程序的启动和退出 1.4.3 窗体的创建、显示、隐藏和关闭 1.4.4 消息框(MessageBox) 1.4.5 利用WinForm控件实现输入和输出 1.4.6 错误提示(ErrorProvider),1.4.1 Windows窗体应用程序的特点,Windows窗体应用程序 是在Windows XP操作系统上开发客户端应用程序的主要开发模型,这种开发模型利用GDI+和操作系统交互。 Windows窗体应用程序现状 WinForm已有多年的历史,其技术高度成熟,如果开发不包含动画、多媒体(音频视频)以及三维图形等高级功能的程序,使用WinForm应用程序可获得比较高的开发效率和运行性能。,1.4.1 Windows窗体应用程序的特点,GDI(Graphics Device Interface,图形设备接口) 是Windows 2000操作系统内核提供的功能,提供二维图形和文本处理功能以及功能有限的图像处理功能 没有三维图形和音频视频等多媒体处理功能。 随着Windows 2000操作系统退出历史舞台,使用GDI技术的开发人员也越来越少。 GDI+ 是Windows XP操作系统内核提供的功能,在GDI的基础上增加了一套基于.NET框架的编程接口,从而让我们能使用C#快速实现窗体界面绘制和绘图功能。 GDI+没有GPU硬件加速功能,所有图形图像处理功能全部都是靠软件来实现。,1.4.2 Windows窗体应用程序的启动和退出,窗体应用程序的启动和停止 使用Application类提供的静态方法来启动、停止应用程序 Run方法: 用于在当前线程上启动应用程序消息循环,并显示窗体。 Exit方法: 用于停止消息循环。 观察Program.cs中的Main方法。,1.4.3 窗体的创建、显示、隐藏和关闭,如何在代码中打开一个新窗体 Form2 fm = new Form2(); fm.Show(); 或者Form2 fm = new Form2(); 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方法提供了多种重载形式,常用有: public static DialogResult Show(string text) public static DialogResult Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon) 例如: MessageBox.Show (“输入的内容不正确“); 消息框关闭后,返回值是DialogResult枚举值之一。枚举值有:None(消息框未返回值)、OK、Cancel、Yes和No,1.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、Text,1.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组件的基本用法。,1.5 WPF和Silverlight应用程序,1.5.1 WPF应用程序 1.5.2 Silverlight应用程序 1.5.3 其他应用程序模板,1.5 WPF和Silverlight应用程序,WPF 高效率运行动画、三维图形和音频视频等多媒体功能 WinForm应用程序只能靠软件来实现,无法直接利用GPU的硬件加速功能 WPF和Silverlight最适用于开发在Windows 7、Windows 8操作系统上运行的应用程序。 WPF适用于C/S客户端开发,Silverlight适用于手机和Web富客户端开发。 WPF利用操作系统底层支持的DirectX实现硬件加速。,1.5.1 WPF应用程序,1DirectX简介 1995年,DirectX 1.0诞生 它提供了直接读取图形硬件(显卡)的功能,但该版本还不包括3D功能。当时流行的编程接口是OpenGL,DirectX 1.0刚推出时,由于众多的硬件厂家均不支持DirectX,该版本基本没有获得成功。 1996年,微软推出DirectX 2.0。 该版本在DirectX中加入了Direct3D,用于访问3D硬件加速的高级图形功能,通过提供通用的COM编程接口使硬件和设计完全分离。,1.5.1 WPF应用程序,1DirectX简介 1997年,微软推出DirectX 3.0。此时3D游戏逐渐深入人心不少显卡生产厂家开始支持DirectX,并陆续推出3D图形加速卡。随后微软直接推出DirectX 5.0(没有出现4.0版)5.0版的3D功能日益强大。使游戏中的3D技术逐渐走入成熟阶段。此时DirectX也得到了大多数知名厂商的认可和强力支持。 2001年,微软发布了DirectX 8.0 2002年,微软发布DirectX 9.0 2006年,微软推出DirectX 10.0版,1.5.1 WPF应用程序,1DirectX简介 2009年,微软推出多线程渲染的DirectX 11.0。该版本引入了Shader Model 5.0,以便让GPU从事更多的通用计算工作,而不仅仅是3D运算,从而鼓励开发人员更好地将GPU作为并行处理器来使用。 随后,微软将DirectX作为Windows 7、Windows 8操作系统底层默认的核心编程接口。 而对DirectX 11.0封装后的WPF和HTML5的实现,则同时支持Windows 7和Windows 8操作系统以及IE 9.0和IE10.0浏览器【IE10.0正式版支持Win7、Win8】,1.5.1 WPF应用程序,2WPF应用程序和WinForm应用程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论