第1章C#代码编写基础_第1页
第1章C#代码编写基础_第2页
第1章C#代码编写基础_第3页
第1章C#代码编写基础_第4页
第1章C#代码编写基础_第5页
已阅读5页,还剩73页未读 继续免费阅读

下载本文档

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

文档简介

C#程序设计及应用课程总体安排第1章至第6章C#程序设计(10课时)第12章ADO.NET数据库与实体数据模型(2课时)ASP.NETMVC3框架及应用(12课时)JavaScript应用(4课时)第二部分网络编程第一部分C#基础第三部分设计模式

与WPF

面向对象设计模式DesignPattern(4课时)第7章至第8章WPF框架及应用(***)期末考核第一部分平时出勤+期末大作业40%第二部分期末考试60%期末大作业应用.NETMVC三层架构开发网站

要求:1.网站主题自定 i)至少应用ADO数据库设计与访问机制 ii)界面友好 iii)应用JavaScript技术有加分

2.撰写并于期末考试前提交实验报告 i)突出亮点(要求不高)

如:搭建VS2015环境+MVC6架构+js技术

3.严禁抄袭教育部普通高等教育十二五国家级规划教材

《C#程序设计及应用教程》第3版

(包括简化版:《C#程序设计教程》第3版)

第1章C#代码编写基础5Ch1C#代码编写基础1.1C#语言和VS2012开发环境1.2C#项目的组织1.3控制台应用程序1.4Windows窗体应用程序1.5WPF和Silverlight应用程序1.6独立应用程序和浏览器运行的应用程序1.1C#语言和VS2012开发环境1.1.1C#语言和.NET框架1.1.2VS2012开发环境71.1.1C#语言和.NET框架C#(读作“Csharp”)是一种完全面向对象的基于.NET框架的高级程序设计语言。专门为快速编写在.NET框架上运行的各种应用程序而设计。语法简洁精心的面向对象设计与Web的紧密结合可靠的安全性与错误处理可靠的版本控制技术灵活性和兼容性。1.1.1C#语言和.NET框架Microsoft.NET框架定义Microsoft.NET框架是生成、运行.NET应用程序和WebService的组件库。即:运行时环境(RuntimeEnvironment)包含公共语言运行库类库类库为开发和运行.NET应用程序提供了各种支持类库是与公共语言运行库紧密集成的可重用的类的集合类库中的每个类均按照功能划分到不同的命名空间(namespace).NET框架4.5版本的类库由5000左右个类组成,提供互联网和企业级应用开发所需要的各种功能。即:体现出了面向组件(对象)编程思想的强大生命力。1.1.1C#语言和.NET框架Microsoft.NET框架特点:一种框架多种语言支持C#语言、VB.NET语言、C++和C++.NET语言、F#语言等高级语言注意用基于.NET框架开发的应用程序,不论使用的是哪种高级语言,均必须在安装了.NET框架的计算机上才能运行。这种架构与Java应用程序必须由Java虚拟机支持相似。思考如何实现一种框架多种语言?1.1.1C#语言和.NET框架Microsoft.NET框架--公共语言运行库公共语言运行库是.NET框架的基础,为多种编程语言提供统一的运行环境。托管代码以运行库为目标的代码称为托管代码,例如C#。非托管代码不以运行库为目标的代码称为非托管代码,例如C++。1.1.1C#语言和.NET框架Microsoft.NET框架--公共语言运行库中间语言IL使用.NET框架提供的编译器可直接将源程序编译为.EXE或者.DLL文件,此时编译出来的程序代码并不是CPU能直接执行的机器代码,而是一种中间语言IL代码。使用中间语言代码的优点可以实现平台无关性,即与特定的CPU无关;只要能将某种语言编译为IL代码,就可以实现这些语言之间的交互操作。1.1.1C#语言和.NET框架即时编译执行时CLR会将需要的IL代码装入内存,通过JIT编译器(Just-In-Time)将其编译成所用平台的CPU可直接执行的机器代码。即时编译并不是一次把整个应用程序全部编译完,而是只编译它调用的那部分代码所在的模块。为什么要采用即时编译JIT编译器可以有效地提高系统的性能。可利用现有CPU和GPU硬件提供的功能即时生成优化后的可执行代码。1.1.2VS2012开发环境VS2012开发环境1.安装VS2012速成版(ExpressEdition)--免费专业版(ProfessionalEdition)旗舰版(UltimateEdition)--本书调试用的环境2.安装VS2012SP33.配置VS2012开发环境的界面风格(可选)深色浅色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。可以放在任何一个类中。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—从零开始的整数,表示第几个参数。例如{0}表示x,{1}表示y,{2}表示zM—可选参数,整数,表示最小长度。若参数N的长度小于M,就用空格填充;如果M为负,则左对齐;如果M为正,则右对齐;例如:{1,5}表示将参数y的值转换为字符串后按5位右对齐输出1.3.2在控制台应用程序中输出格式化数据格式化输出形式格式码—可选参数,格式化代码样式。格式码:有默认位数,可用整数指定位数;

C—货币形式、D—十进制形式、F—固定精度形式、E—指数形式、N—用逗号分隔千位数字、P—百分比形式、X—十六进制形式占位符:0—强制占位符、#—有效占位符例如:{1:00000}输出结果为00020,即将参数y按5位数字输出,不够5位则在左边补零,超过5位按实际位数输出注意两种特殊用法:如果恰好在格式中也要使用大括号,可以用连续的两个大括号表示一个大括号,例如:”{{、}}”如果希望格式中的字符或字符串包含与格式符相同的字符,但是又希望让其原样显示时,可以用单引号将其括起来。1.3.2在控制台应用程序中输出格式化数据利用string.Format方法格式化字符串先用String.Format方法拼接字符串,再用WriteLine方法输出;既可以在控制台应用程序中使用,也可以在其他应用程序中(WinForm、WPF等)使用。例如:inti=123;//d6表示不够6位左边补零strings=string.Format("{0:d6}",i); Console.WriteLine(s);//结果为0001231.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】演示控制台应用程序的基本设计方法,以及如何在一个解决方案中包含多个应用程序项目。该例子的功能是让用户从键盘输入任意两个整数x和y,程序自动计算这两个数的乘积(z=x*y),并将计算结果z在屏幕上显示出来这个例子虽然简单,但却能让我们快速了解基本的应用程序编程思路和方法。(1)运行VS2012,单击【新建项目】按钮,在弹出的窗体中,选择【控制台应用程序】模板。将【名称】改为ConsoleExamples,将【位置】改为希望存放的文件夹位置(截屏为D:\V3CSharp\ch01),将【解决方案名称】改为ch01。单击【确定】按钮。4.控制台应用程序示例(2)观察【解决方案资源管理器】中的项目组织,此时会发现在ch01解决方案下有一个ConsoleExamples项目。(3)将Program.cs的Main方法改为下面的代码。4.控制台应用程序示例staticvoidMain(string[]args){Console.Write("请输入x和y(例如12,15),然后按回车键:");strings=Console.ReadLine();string[]a=s.Split(',');intx=int.Parse(a[0]);inty=int.Parse(a[1]);intz=x*y;Console.WriteLine("x*y={0}",z);Console.WriteLine("请按任意键结束程序。");Console.ReadKey();}(4)按<F5>键调试运行。效果如下:(5)按任意键结束程序运行,然后退出VS2012开发环境,观察解决方案文件夹下生成的所有文件和子目录,以及子目录下包含的文件。此时可发现在ch01目录下,有一个ch01.sln文件,以后需要再次打开这个解决方案时,直接双击该文件即可。4.控制台应用程序示例(6)观察bin\Debug子目录下的文件,可发现在该文件夹下有一个ConsoleExamples.exe文件,这就是项目生成的可执行文件。(7)双击该文件可直接运行该程序,其他的文件不需要。4.控制台应用程序示例4.控制台应用程序示例下面我们将其改为在DLL(动态链接库)文件中实现运算。(8)双击ch01.sln打开解决方案。(9)在【解决方案资源管理器】中,鼠标右击解决方案名,选择【添加】【新建项目】命令,在弹出的窗体中,选择【类库】模板,将【名称】改为ClassLibraryExample,然后单击【确定】按钮。4.控制台应用程序示例(10)在“解决方案资源管理器”中,将Class1.cs改名为MyClass.cs,然后将代码改为下面的内容。4.控制台应用程序示例(11)鼠标右击解决方案名,选择“重新生成解决方案”,此时在ClassLibraryExample项目的bin\Debug文件夹下即生成了ClassLibraryExample.dll文件。4.控制台应用程序示例(12)在【解决方案资源管理器】中,鼠标右击ConsoleExamples项目,在快捷菜单中选择【项目依赖项】命令,在弹出的对话框中,勾选ClassLibraryExample选项,单击【确定】按钮。4.控制台应用程序示例(13)鼠标右击ConsoleExamples项目的【引用】,选择【添加引用】命令,在弹出的对话框中,勾选ClassLibraryExample选项,单击【确定】按钮。4.控制台应用程序示例(14)将Main方法的intz=x*y;用下面的语句替换。intz=ClassLibraryExample.MyClass.Multiplication(x,y);(15)按<F5>键运行应用程序,观察运行结果。(一样吗?)4.控制台应用程序示例(16)再次观察ConsoleExamples项目目录下的bin\Debug子目录下的文件,此时会发现该子目录下既有ConsoleExamples.exe文件,又有ClassLibraryExample.dll文件。到此,我们了解了用C#调用dll文件功能的基本用法。请同学们体会和比较下Java与C#语言在编程环境、封装和调用类包等方面有哪些异同。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+和操作系统交互。Windows窗体应用程序现状WinForm已有多年的历史,其技术高度成熟,如果开发不包含动画、多媒体(音频视频)以及三维图形等高级功能的程序,使用WinForm应用程序可获得比较高的开发效率和运行性能。。1.4.1Windows窗体应用程序的特点GDI(GraphicsDeviceInterface,图形设备接口)是Windows2000操作系统内核提供的功能,提供二维图形和文本处理功能以及功能有限的图像处理功能没有三维图形和音频视频等多媒体处理功能。随着Windows2000操作系统退出历史舞台,使用GDI技术的开发人员也越来越少。GDI+是WindowsXP操作系统内核提供的功能,在GDI的基础上增加了一套基于.NET框架的编程接口,从而让我们能使用C#快速实现窗体界面绘制和绘图功能。GDI+没有GPU硬件加速功能,所有图形图像处理功能全部都是靠软件来实现。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组件的基本用法。1.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

温馨提示

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

评论

0/150

提交评论