VisualStudio开发环境介绍解析课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《VisualStudio开发环境介绍解析课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VisualStudio 开发 环境 介绍 解析 课件
- 资源描述:
-
1、Visual Studio.Net 开发环境介绍概述.NET Framework.NET Framework框架Visual Studio.NetVisual Studio.Net集成开发环境(IDEIDE)程序设计语言 C#C#.NET.NET 相关知识学会开发:WindowsWindows窗体应用程序 WebWeb应用程序1.1 Visual Studio.Net 架构1.2.NET Framework框架.NET Framework=CLR+.NET Framework=CLR+基类库公共语言运行时CLR CLR 统一的编程类库1.3.NET Framework框架公共语言运行时是 .N
2、ET Framework.NET Framework 的基础。内存管理、线程管理、远程处理等核心服务 强制实施严格的类型安全 可提高安全性和可靠性的其他形式的代码准确性事实上,代码管理的概念是运行时的基本原则。托管代码:以运行时为目标的代码非托管代码:不以运行时为目标的代码.NET Framework.NET Framework 类库是一个与公共语言运行时紧密集成的可重用的类库集合。该类库是面向对象。此外,第三方组件可与 .NET.NET Framework Framework 中的类无缝集成。1.4 C#运行模型1.5 版本回顾1.6 新增特性.NET Framework 1.1,2.0版本
3、新增功能http:/ Framework 3.0 版介绍http:/ Framework 3.5 版新增功能http:/ Framework 4.0版本新增功能http:/ Visual Studio.Net集成开发环境(IDE)工具箱工具箱任务列表任务列表解决方案解决方案资源管理器资源管理器动态帮助动态帮助编辑器编辑器/浏览器浏览器属性属性服务器资服务器资源浏览器源浏览器对象浏览器对象浏览器2.2 Visual Studio.NET的优点多语言支持 Visual Studio.NET 支持 Visual Basic.NET、C#、Visual C+.NET、Visual J#.NET风格统一
4、的集成开发环境 不同的语言、不同类型的项目使用相同的集成开发环境 自定义用户界面多项目支持 支持各种类型项目的开发 在一个解决方案中包含多种类型的项目 单启动项目和多启动项目 强大的调试支持 反汇编、内存监视、寄存器监视、监视表达式、断点、逐句执行、运行到指定位置、设置执行点 实时调试、本地调试、远程调试起始页2.3 解决方案解决方案的定义 一个逻辑上的容器,包含构成应用程序的项目和其它文件解决方案的组成 一个解决方案可以包含一个或多个项目 解决方案可以包含独立于项目的文件 被多个项目共享的文件,将被生成到应用程序中 杂项文件,不会被生成到应用程序,仅被解决方案引用使用解决方案的优点 可以同时
5、使用多个不同类型的项目 全权处理文件管理细节,用户可以集中精力开发、部署应用程序 使用解决方案资源管理器可观察所有的项目和文件2.4 项目定义项目的定义 项目是解决方案的构件块,由文件组成,它的输出结果通常为可执行文件(.EXE)或动态链接库(.DLL)所有的项目都包含在解决方案中,并且含有一个惟一的项目文件(扩展名csproj)项目文件含有对应项目所包含的文件的一个列表以及它们的跟踪信息项目通常包含多个项2.5 集成环境演示 创建解决方案 添加控件和编写代码 编译和运行程序 代码分析2.5.1 创建解决方案 选择【文件】|【新建】|【空白解决方案】命令,打开【新建项目】对话框 为解决方案起名
6、为“Demo”在【解决方案资源管理器】中,右击解决方案选择【添加】|【新建项目】命令 在【添加新项目】对话框中选择C#类型项目和windows应用程序2.5.2 添加控件并编写代码 打开【工具箱】窗口,从【windows窗体】栏选择一个Button和一个Label,并拖放到窗体上。双击Button控件,进入代码编辑器,在光标所在位置添写代码。编辑器环境简介当输入“.”时,会提示该对象的所有方法、属性和事件,可直接选择,按“Enter”键。当输入“(”时,会显示一个浮动窗口,它包含了该方法的输入参数类型和个数,确保正确调用。关键字、标识符和操作符等不同类别单词可以显示不同颜色。可在【工具】|【选
7、项】中设置。对于错误代码会在该代码下显示红色波浪线。对于不清楚的关键词,可以选中该单词后按F1键,直接查看帮助。2.5.3 编译并运行程序按F5或者选择【调试】|【启动】命令可以进行编译。当有多行代码时可以用F11或者选择【调试】|【逐语句】进行跟踪单步调试。2.5.4 代码分析1.命名空间:对类型进行逻辑分组 using System;namespace WindowsApplication1 类定义;2.类 Visual C#中的每个对象都必须属于一个类。如:public class Form1:System.Windows.Forms.Form3.Main()方法 所有的Visual C
8、#程序都必须包含一个Main()方法,是程序的入口点。4.注释语句1)单行 2)多行 3.1 C#概述1.和c+/c的相同点C#从CC+语言发展而来,它继承了CC+语言的许多特性.主要体现在语句、表达式和运算符上。大小写敏感;注释语句以“/”开头或者“*.*”;以“;”结尾;使用“”来括起语句块2.C#的改进类型安全的,支持版本化,支持事件,支持无用单元收集,支持属性化编程支持COM平台和元数据支持XML和WEB组建开发C#中的所有字符以Unicode形式存放,每个字符占2个字节3.2 C#语言基础标识符 以字母或下划线开始,其后跟任意字母、数字、下划线的字符串 用于变量名、常量名、函数名、类
9、名、对象名等名字的表示 代码中的各种标识符都是Unicode的形式(C#的源文件都是以Unicode的形式保存)变量常量 const 类型标识符 变量名=表达式;3.3 简单数据类型 数值类型 整型 有符号 sbyte short int long 无符号 byte ushort uint ulong 浮点型 float double 小数型 decimal 字符类型 字符型 char 字符串型 string 布尔类型3.4 C#运算符3.4 C#运算符成员访问运算符 .访问类型的成员索引运算符 通过索引的形式来访问数组、索引器或属性类型转换运算符()进行类型转换操作对象创建运算符 new 用
10、来创建对象并调用对象的构造函数System.Widows.Forms.MessageBox.ShowStr12=“Hello”;int a(int)x;Classl MyClassnew C1assl();int inew int();3.4 C#运算符类型信息运算符:运行时检查或获取对象的类型信息,is:判断对象运行时的类型是否与给定类型兼容。例如:int i;if(i is int)as:用于执行兼容类型之间的转换。例如:int i;double j=i as double;Sizeof:用来获取值类型的大小,以字节为单位Typeof:返问一个类型的System.Type 对象 运算符的优
11、先级3.5 C#常用语句 声明语句:用于变量或常量的申明 嵌入语句 语句块 空语句 “;”表达式语句 x=a+b;条件选择语句 循环语句 跳转语句 异常处理语句 using语句(类似于include和import)3.5 C#常用语句using用法(1)引用命名空间 using Namespace;(2)创建命名空间别名 using alias=namespace|type;(3)强制资源清理 清理非托管资源,不受GC控制的资源。Using结束后会隐式的调用Disposable方法。using(Class1 c=new Class1()/清理非托管不受GC控制的资源 但是当对象使用using关
12、键字的时候,必须实现IDisposable接口。其实using的使用和try-catch-finaly中,在finaly代码域调用Disposable方法效果一样。注意Using不能使用多个不同的类 3.5.1 C#常量/变量声明C#中不能声明全局变量或全局静态变量。所有声明变量都是局部变量或类的成员变量。例题:static void main()int a;int b=2,c=3;const float pi=3.14;readonly 关键字与 const 关键字不同。const 字段只能在该字段的声明中初始化。readonly 字段可以在声明或构造函数中初始化。因此,根据所使用的构造函数
13、,readonly 字段可能具有不同的值。另外,const 字段为编译时常数,而 readonly 字段可用于运行时常数,3.5.2 条件选择语句 C#中包含两种条件选择语句:if else 语句 switch-case语句 Switch(表达式)case 常数表达式;/语句块 跳转语句 (break,return,goto)default:语句块 if(表达式)语句块1 else 语句块23.5.3 循环迭代语句 循环语句用来反复地执行些操作。用户可以指定循环的次数,或者指定循环的条件。四种循环语句:for语句 Foreachin语句 while语句 do语句for循环 for(初始化;表达
14、式;迭代部分)例如:for(int i=0;i10;i+)Console.WriteLine(i);foreach 语句为数组或对象集合中的每个元素重复一个嵌入语句组。foreach语句用于循环访问集合以获取所需信息,但不应用于更改集合内容以避免产生不可预知的副作用。foreach 语句适用于实现了 System.Collections.IEnumerable或 System.Collections.Generic.IEnumerable接口的对象集合或数组。可以在 foreach 块的任何点使用 break 关键字跳出循环,或使用 continue 关键字进入循环的下一轮迭代,还可以通过 g
15、oto、return 或 throw 语句退出。集合对象是指实现了IEnumerable接口的对象,而不是IEnumerator接口。但是C#的要求并不严格,即虽然没有显式继承IEnumerable接口,但只要类声明中包含GetEnumerator()方法即可。foreach会自动对迭代器返回的类型进行强制类型转换int numbers=1,2,3,4,5,6,7,8,9foreach(int element in number)System.Console.WriteLine(element);while语句例:int i=0;while(i10)Console.Write(i);i+;do
16、语句例:int i=0;do(i10)Console.Write(i);i+;while(i10)3.5.4 跳转语句break 从循环或条件语句中跳出,执行下一条语句continue 对循环体内continue语句之后语句不执行,开始下一次循环return 将控制返回调用的方法 如果返回类型为void,则return可以省略3.5.5 方法调用语句 参数的使用 在C#中,方法本身只能返回一个值 可通过引用类型的参数从方法中获取多个输出值。ref、out两种参数声明方式 Params参数声明方式:声明变长参数列表 1.ref参数ref 关键字使参数按引用传递。其效果是,当控制权传递回调用方法时
17、,在方法中对参数的任何更改都将反映在该变量中。若要使用 ref 参数,则方法定义和调用方法都必须显式使用 ref 关键字。传递到 ref 参数的参数必须初始化2.out参数用法和作用类似于ref参数out参数声明方式不要求变量传递给方法前进行初始化在方法返回前,必须对out参数进行赋值。注意:在采用引用参数的方法中,多个形参可能表示同一存储位置。例如:class A string s;void F(ref string a,ref string b)s=One;a=Two;b=Three;void G()F(ref s,ref s);3.params参数用来声明可变长度的参数列表声明时,par
18、ams参数后面不能再有其他的参数方法声明中只能包含一个params参数。using System;public class MyClass public static void UseParams(params int list)for(int i=0;ilist.Length;i+)Console.WriteLine(listi);Console.WriteLine();public static void UseParams2(params object list)for(int i=0;ilist.length;i+)Console.WriteLine(object)listi);Con
19、sole.WriteLine();public static void Main()UseParams(1);UseParams(1,2,3);UseParams2(1,a,”test”);int myarray=new int3 10,11,12;UseParams(myarray);3.5.6 异常处理语句在程序的执行过程中不可避免地要出现异常情况,包括系统产生的异常以及程序本身产生的异常异常处理机制 C#语言提供了对异常处理的内建支持,即通过throw、try、catch、finally语句实现的结构化、统一的、类型安全的异常处理机制。1.throw 语句 当在程序的执行过程中遇到异常情
20、况时,例如打开文件失败等,用户就可以使用throw语句报告发生了异常。格式 throw 异常对象 异常对象是从System.Exception 类型派生的类的实例2.Try-Catch-Finally语句try Console.WirteLine(“Executing the try statement.”);throw new NullReferenceException();catch(NullReferenceException e)/捕获特定异常 Console.WirteLine(“0 Caught exception#1.”,e);catch/捕获所有异常 Console.Wirt
21、eLine(“0 Caught exception#2.”);finally Console.WirteLine(“Executing finally block.”);3.5.7 预处理器指令 预处理器指令具有以下功能:有条件的忽略源代码某些部分 报告错误和警告条件 描述源代码不同区域 C#中包含以下几种预处理器指令:1)#define指令该指令用来定义一个符号,然后就可以在#if指令中使用这个符号进行判断。例如:#define DEBUG2)#undef指令取消一个符号的定义(包括已经使用#define指令定义的符号)例如:#undef DEBUG3)#if、#else、#elif、#en
22、dif指令:条件指令,控制编译器的编译过程。例题:#define A#undef Bclass C#if!Avoid F()#elif Bvoid G()#else void H()#endif4)#warning,#error#if DEBUG#warning DEBUG is defined#error 使用error指令产生的错误信息5)#region 和#endregion指令用于标记原代码中的一段区域。3.6 C#类型系统声明变量的内部机制在.NET程序中,当你声明一个变量,将在内存中分配一块内存。这块内存分为三部分:1,变量名;2,变量类型;3,变量值。栈和堆public void
23、 Method1()/Line 1 int i=4;/Line 2 int y=2;/Line 3 class1 cls1=new class1();第1行:当这行代码执行时,编译器为它分配一小块栈内存。运行时栈负责提供程序所需的内存;第2行:程序继续执行。如同名字一样,栈在第一块内存的顶部分配了一块内存。你也可以认为是模块或零件一块一块叠起来;内存的分配与释放遵循后进先出(后进先出)逻辑,换句话说,内存只能在示例中i内存块的顶部分配或释放。第3行:我们创建了一个对象。当该行执行时,编译器在站上创建了一个指针,真实的对象存储在另一种叫“堆”的内存中。堆并不跟踪运行内存,它更像一堆随时可以访问的
24、对象。堆用于动态分配内存。这里需要着重说明的是引用指针是分配在栈上。声明Class1 cls1时并不会给Class1的实例分配内存,而是分配一个栈变量cls1(并设置为null),然后把它指向“堆”。退出方法:当方法退出时,它释放了栈上所有内存变量。换句话说,栈上所有的Int变量都依据后进先出的逻辑被释放掉了。要注意,此时不会释放堆内存,这种内存稍后会被“垃圾收集器”释放。值类型值类型的数据和内存在同一个位置引用类型是一个指向内存的指针。右图示例是一个整形数据类型变量i被赋给另一个整形数据类型变量j。它们的内存值都分配在栈上。当我们把一个int值分配给另外一个int值时,需要创建一个完全不同的
25、拷贝。换句话说,你可以改变其中任何一个而不会影响另外一个。这种数据类型被称为值类型。引用类型当我们创建一个对象,并把一个对象赋给另外一个对象时,它们的指针指向相同的内存(如右图,当我们把obj赋给obj1时,它们指向相同的内存)。换句话说,我们改变其中一个,会影响到另外一个,这种类型称为引用类型。装箱与拆箱 数据从值类型转变为引用类型的过程称为“装箱”,反之为“拆箱”当我们把一个值类型装箱为引用类型时,数据从栈移动到堆上。反之,数据从堆移动到栈上。这种在堆和栈之间的移动带来了性能的损失。如果编译上面的代码,在ILDASM中看IL代码就会发下如何进行装箱拆箱操作的装箱拆箱的性能影响为了揭示装箱拆
展开阅读全文