C#学习笔记(个人).pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《C#学习笔记(个人).pdf》由会员分享,可在线阅读,更多相关《C#学习笔记(个人).pdf(154页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、、c#基础知识Q)1、C#中 foreach 用法f o r ea c h循环用于列举出集合中所有的元素,f o r ea c h语句中的表达式由关键字i n隔开的两个项组成。i n右边的项是集合名,i n左边的项是变量名,用来存放该集合中的每个元素。该循环的运行过程如下:每一次循环时,从集合中取出一个新的元素值。放到只读变量中去,如果括号中的整个表达式返回值为t r u e,f o r ea c h块中的语句就能够执行。一旦集合中的元素都已经被访问到,整个表达式的值为f a l s e,控制流程就转入到f o r ea c h块后面的执行语句。f o r ea c h语句经常与数组一起使用,
2、下面实例将通过f o r ea c h语句读取数组的值并进行显示。数组的属性:A r r a y.L en g t h数组的容量利用这个属性,我们可以取得数组对象允许存储的容量值,也就是数组的长度、元素个数,这个比较好理解,数组还有其他的属性,比如数组的维数等,属性的用法比较简单,学会一种,其他的格式基本一致,这里我们就不举例了。当数组的维数、容量较多时,C#提供了 f o r ea c h语句,专门用来读取集合/数组中的所有元素,我们把这种功能叫做遍历。语法书写如下:遍历数组:f o r ea c h (t y p e o b j N a m e i n c o l l ec t i o n
3、/A r r a y)这段语句会逐一检查数组中的所存储的变量值,并且一一将其取出,其中的t y p e是你所要读取的数组对象将要存储在o b j N a m e变量的数据类型,而o b j N a m e是定义了一个t y p e类型的变量名,代表每一次从集合和数组(c o l l ec t i o n/A r r a y)中取得的元素,c o l l ec t i o n/A r r a y则是所要存取的数组对象。用这种方法只需写一个f o r ea c h就可以遍历出除交错数组以外的所有维数的数组。例子:用f o r ea c h循环一次性遍历a数组i n t ,a =n ew i n t
4、 2,2,2 1,2 ,3,4,5,6 ,7,8 ;定义一个2行2列2纵深的3维数组af o r ea c h(i n t i i n a)C o n s o l e.Wr i t eL i n e(i);这两种代码执行的结果是一样的都是每行一个元素,共 8 行,元素分别是1234 5 6 7 8string口数组里面是存放strin g 型的值,List string是存放strin g 类型的对象2、C#中的 InitializeComponent。方法lnitializeComponent()用于初始化窗体上控件。在每个窗体生成的时候,都会针对于当前的窗体定义InitializeComp
5、onent。方法,该方法实际上是由系统生成的对于窗体界面的定义方法。位于.cs文件之中的InitializeComponent。方法public Form011()lnitializeComponent();)在每一个Form文件建立后,都会同时产生程序代码文件.CS文件,以及与之相匹配的.Designer.CS文件,业务逻辑以及事件方法等被编写在C S 文件之中,而界面设计规则被封装在.Designer.CS文件里,下面代码为.Designer.CS文件的系统自动生成的脚本代码。namespace Example_FormTestpartial class frmStudent(/必需的设计
6、器变量。/private System.ComponentModeLIContainer components=null;/清理所有正在使用的资源。/protected override void Dispose(bool disposing)if(disposing&(components!=null)components.Dispose();)base.Dispose(disposing);)#region Windows窗体设计器生成的代码/设计器支持所需的方法不要/使用代码编辑器修改此方法的内容。/private void lnitializeComponent()(this.Susp
7、endLayout();/frmStudent/this.AutoScaleDimensions=new System.Drawing.SizeF(6F,12F);this.AutoScaleMode=System.Windows.Forms.AutoScaleMode.Font;this.ClientSize=new System.Drawing.Size(292,273);this.Name=frmStudenC;this.Text=学生信息”;this.MouseClick+=newSystem.Windows.Forms.MouseEventHandler(this.frmStuden
8、t_MouseClick);this.KeyPress+=newSystem.Windows.Forms.KeyPressEventHandler(this.frmStudent_KeyPress);this.ResumeLayout(false);)#endregion)在代码之中,可以很容易发现InitializeComponent。方法和Dispose。方法,前者为界面设计的变现内容,后者为表单释放系统资源时候执行编码。lnitializeComponent()方法反映了窗体设计器中窗体和控件的属性。通常不会在世界上个文件中修改代码。如果更改InitializeComponent。方法中
9、的相关属性参数,在窗体设计器界面上也会显示出来。我们发现建个c#窗体项目,在 Form1.cs和 Form1.Designer.cs里分别有 个InitializeComponent。函数Form1.Designer.cs里 的 是 定 义(函数名后面有大括号包含定义内容)Form1.cs里 的 是 调 用(函数名后面分号结尾)partial表示以下创建的是分布类代码也就是说一个类的定义代码 可以写在两个不同的页面Form1.cs 和 Form1.Designer.cs注意:IrdtializeComponent。方法写在前面和后面是有区别的。InitializeComponent。方法是用来
10、初始化窗体组件的,在 InitializeComponent之前,窗体的各个控件还没有进行初始化,比如说窗体上有一个TextBoxUserName,在 InitializeComponent之前它还只是一个TextBox类型的变量而已,如果在IrdtializeComponent之前调用这个TextBox的属性或方法,就会出错。再比如说你拖上取一个TextBox,它放在Form的位置,TextBox的一些属性。包括new 这个TextBox都放在那个函数里面处理的。我们可以看一下Form.Designer.cs,在那里找到InitializeComponent方法,您会发现窗体对象的初始化都是
11、在那里做的。3 C#里面的#region是什么意思?S region是c#预处理器指令。#re g io n是一个分块预处理命令,它主要用于编辑代码的分段,在编译时会被自动删除。#region使你可以在使用VS代码编辑器的大纲显示功能时指定可展开或折叠的代码块。例如:El#region M y C l a s s d e f i ni t i o nI p u b l i c c l a s s M y C l a s s由s t a t i c v o i d M a i n()由 (卜 )卜#e nd r e g i o n备注:#r e g i o n块必须以#e nd r e g i
12、o n指令终止。#r e g i o n块不能V#i f 块重叠。但是,可以将#r e g io n块嵌套在#1 块内,或将#if 块嵌套在#r e g io n块内。使用#region就是将一些有关联的代码组织在一起,然后折叠起来。这样你就在一个函数中看不到很长的令人头痛的代码段。当然这段代码很简单。在实际项目中,你可能看到上百行甚至更多的代码在一个#region中。如果把它折叠起来。看起来就会很整洁。re g io n不适合在大方法中使用,当你在 一 个方法中使用#re g io n的时候,停下来想想你刚刚写了什么代码?大多数时候,你可以将这些代码段独立成一个函数。4、C#中this的作用
13、在 C M ,th is 关键字代表当前实例,我们可以用th is.来调用当前实例的成员方法,变量,属性,字段等;也可以用th is 来做为参数状当前实例做为参数传入方法.还可以通过th is 来声明索引器。下面介绍C#中th is 的作用一、C#th is 指针的几种用法1、限定被相似的名称隐藏的成员C#代 码 复制p u b lic c la s s T h is N a me白IIIp u b lic s tr ing na me =张三”;p u b lic int nu m=5 5;p u b lic T h is N a me()p u b lic v o id G e tT h
14、is N a me(s tr ing na me,int nu m)(na me =th is,na me;调取全局变量 na menu m=th is,nu m;调取全局变量nu mH ttp C o nte x t.C u r r e nt.R e s p o ns e.W r ite (参数 na me 的值为:+na me+”;参数nu m的值为:+nu m);输出结果为 参数na me 的值为张.七参数 nu m值为:5 5”L2、将对象作为参数传递到别的方法中C#代 码 复制p u b lic c la s s T h is F Fp u b lic T h is F F()卜 )
15、Ip u b lic s tr ing s h u ju()I由 II r e tu r n T h is指针当做方法传递“;I卜 )Ip u b lic v o id f l(T h is F F f f)I白 IH ttp C o nte x t.C u r r e nt.R e s p o ns e.W r ite(f f.s h u ju();I卜 )Ip u b lic v o id f()I由 If l(th is);th is 在这里可以理解为 T h is F F f f=ne ws T h is F F();当前类的实例I卜 )IL T h is F F f f=ne ws
16、T h is F F。;方法实例f f.f ();调用方法 输出结果为:T h is指针当做方法传递3、声明索引器c#代码复 制p r iv a te int _ S y;p u b lic int th is int s y (g e t(r e tu r n _ S y;Q s e t s y=_ S y;二、C#中th is 的总结1、I h is 关键字引用被访问成员所在的当前实例。静态成员函数没有th is 指针。th is 关键字可以用来从构造函数,实例方法和实例化访问器中访问成员,不能在静态方法。静态属性访问器或者域声明的变量初始化程序中使用th is 关键字,这将会产生错误。2
17、、在类的构造函数中出现的th is 作为一个值类型表示对正在构造的对象本身的引用。3、在类的方法中出现th is 作为一个值类型表示对调用该方法的对象的引用。4、在结构的构造函数中出现的t h i s 作为一个变量类型表示对正在构造的结构的引用。5、在结构的方法中出现的t h i s 作为一个变量类型表示对调用该方法的结构。5、c#.netSuspendLayout 和 Resume Layout在Designer中会看到这两个方法,究竟是做什么用的呢?一般在加载所有控件之前SuspendLayoul方法,挂起所有控件在界面的逻辑布局事件,等又有布局代码完后再调用ResumeLayout事件吧
18、刚才挂起的逻辑布局一并执行。例如我们在设置初始化控件时候,都会用到Size、Location Anchor或Dock属性,而每一个属性都会去改变控件在界面上的布局,使得控件,每执行一段代码就就要界面重绘一次,那么我们先挂起所有事件,之后一起执行,这样就可以提高带有许多控件的应用程序的性能。控件的布局逻辑被挂起,直到调用R e s u m e L a y o u t 方法为止。当调整控件的多个属性时,将先后使用S u s p e n d L a y o u t 和 R e s u m e L a y o u t 方法取消多个L a y o u t 事件。例如,通常先调用S u s p e n d
19、 L a y o u t 方法,然后设置控件的 S i z e L o c a t i o n A n c h o r 或 D o c k 属性,最后调用 R e s u m e L a y o u t 方法以使更改生效。注意:为了防止layout事件的发生。这个事件将引发重新绘图的事件,如果介面上控件较多的话,改变控件某些属性时,由于不断地重画,性能变低,所以用suspendlayout来阻止。resumelayou可以结束上面的限制。6、C#中的set和get方法在面向对象编程(O O P)中,是不允许外界直接对类的成员变量直接访问的,既然不能访问,那定义这些成员变量还有什么意义呢?所以C
20、#中就要用s e t 和 g e t 方法来访问私有成员变量,它们相当于外界访问对象的一个通道,一 个“接口”。先来看一段代码:c l a s s E m p l o y e ep r i v a t e s t r i n g n a m e;p r i v a t e b y t e a g e;p u b l i c s t r i n g N a m eg e ts e t r e t u r n n a m e;n a m e =v a l u e;p u b l i c b y t e A g eg e t r e t u r n a g e;)s e t a g e =v a l
21、 u e:)代码中定义了两个私有变量n a m e 和 a g e,当我们不想让外界随意访问该私有变量时,可以使用属性来访问,语法为:p u b l i c 返回类型(要与被访问变量的类型相同)属 性 名(不能与被访问变量同名)(g e t r e t u r n 被访问变量;s e t(被访问变量 =v a l u e;)当我们使用属性来访问私有成员变量时就会调用里面的g e t 方法,当我们要修改该变量时就会调用s e t 方法,当然在定义的时候可以只定义一个g e t 方法或只定义一个s e t 方法。如果只定义g e t 方法,那么这个相应变量就是“只读”的;如果只定义s e t 方法
22、,那么相应变量就是“只写”的。c l a s s E m p l o y e ep r i v a t e s t r i n g n a m e;p r i v a t e b y t e a g e;p u b l i c s t r i n g N a m e(g e t r e t u r n n a m e;s e t n a m e =v a l u e;)*修改后*I I l|p u b l i c b y t e A g eg e t r e t u r n a g e;s e t(i f (v a l u e 1 0&v a l u e C#中的异常处理入门try catch
23、 throw软件运行过程中,如果出现了软件正常运行不应该出现的情况,软件就出现了异常。这时候我们需要去处理这些异常。或者让程序终止,避免出现更严重的错误。或者提示用户进行某些更改让程序可以继续运行下去。C#编程语言本身就为我们提供了这种异常处理机制。C#中的异常是对程序运行时出现的特殊情况的一种响应,比如尝试除以零。或者试图将一个字符串 aaa 转换成整数。异常提供了一种把程序控制权从某个部分转移到另一个部分的方式。C#异常处理时建立在四个关键词之上的:t r y、c at c h、f i n al l y 和 t h r o wo try:一 个 try 块标识了一个将被激活的特定的异常的代
24、码块。后跟一个或多个catch块。catch:程序通过异常处理程序捕获异常。catch关键字表示异常的捕获。finally:finally块用于执行给定的语句,不管异常是否被抛出都会执行。例如,如果您打开一个文件,不管是否出现异常文件都要被关闭。throw:当问题出现时,程序抛出一个异常。使 用 throw关键字来完成。语法假设一个块将出现异常,一个方法使用t r y 和 c at c h 关键字捕获异常。t r y/c at c h 块内的代码为受保护的代码,使 用 y/c at c h 语法如下所示:1 t r y2 3/引起异常的语句4)5 c at c h (E x c e p t i
25、 o n N am e e l)6 7/错误处理代码8)9 c at c h (E x c e p t i o n N am e e 2)10(n/错误处理代码12)13 c at c h (E x c e p t i o n N am e e N)14 15/错误处理代码16 17 f i n al l y18 19/要执行的语句20)C#提供了很多种异常,我们在这里只要掌握最基本的异常E x c e p t i o n 就可以啦。在 c atc h语句中我们只处理E x c eption这个最基本的异常。下面我们看一个具体的例子,来更加清楚的理解一下C#的异常处理。你创建一个项目。解决方案
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 学习 笔记 个人
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内