2022年C#语言学习笔记 .pdf
《2022年C#语言学习笔记 .pdf》由会员分享,可在线阅读,更多相关《2022年C#语言学习笔记 .pdf(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C学习笔记1 C#语言学习笔记C#完全手册 .pdf1. 面向对象 = 对象 + 类 + 继承 + 通信 。如果一个软件系统是使用这样四个概念来设计的,我们认为这个软件系统是面向对象的。2. 静态成员是属于类所有的, 非静态成员则属于类的实例- 对象。3. 在一个类的实例对象的生命周期中,最先执行的代码就是类的构造函数。 构造函数是用来 初始化 对象的特殊类型的函数。可以使用带参数的构造函数,向它传递参数来对类的不同实例进行不同的初始化。4. 非静态方法可以访问类中的任何成员,而静态方法只能访问类中的静态成员。5. 方法的重载:类中两个以上的方法(包括隐藏的继承而来的方法),取得名字相同,只要
2、使用的参数类型或者参数个数不同, 编译器便知道在何种情况下应该调用那个方法,这就叫方法的重载*也就是说,可以在一个类中定义两个名字相同的方法,只要参数或者返回值有一点不一样就可以。调用的时候,编译器会根据情况自动调用正确的方法。6. 在 C#中,所有数据要么属于某个类, 要么属于某个类的实例,从份体现面向对象的思想。7. 域const 型 表 达 式 的 值 在 编 译 时 形 成 , 而static readonly 表达式的值直到程序运行时才形成。8. 事件(event )就是类或对象用来“发出通知”的成员。通过提供事件的句柄, 客户能够把事件和可执行代码联系起来。9. 事件的预定是通过为
3、事件加上左操作符“+=” 来实现的。10.如果每个事件的存储开销太大,我们就可以在类中包含事件访问声明, 按私有成员的规则存放事件句柄列名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 19 页 - - - - - - - - - C学习笔记2 表。11.多态性:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。多态性通过派生类重载基类中的虚函数型方法来实现。12.多态性:同一操作作用于不同的类的实例,不同的类将进行不同的解释,最后产生不同的执行结果。C支持两
4、种类型的多态性:编译时的多态性:通过重载实现。对于非虚成员来说,系统在编译时,根据传递的参数、返回的类型等信息决定实现何种操作。运行时的多态性:通过虚成员实现。13.派生类中重新定义此虚函数时,要求的是方法名称、返回值类型、参数表中的参数个数、类型、顺序都必须于基类中的虚函数完全一致。在派生类中声明对虚方法的重载,要求在声明中加上override关键字,而且不能有 new ,static,virtual修饰符。14.非虚的派生类要求通过重载为继承的虚方法提供自己的实现,而抽象方法则不包含具体的实现内容,所以方法声明的执行体中只有一个分号“; ” 。15.密封方法必须对基类的虚方法进行重载,提供
5、具体的实现方法。 所以,在方法的声明中, sealed 修饰符总是和 orerride修饰符同使用。属性声明时如果有sealed修饰符,同时也必须要有orerride修饰符。16.构造函数实例构造函数和静态构造函数。 前者在每个实例或对象创建时被调用,后者在类的第一个对象被创建 之前被调用(而且只调用一次) 。17.析构函数尽量不用18.装配有两种类型:应用程序和库。应用程序都有一个入口,通常扩展名为“.Exe” 。库则不包含入口,通常扩展名为“ .dll”名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - -
6、 - - - - 第 2 页,共 19 页 - - - - - - - - - C学习笔记3 薄弱环节:1事件和索引指示器2属性访问器3接口名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 19 页 - - - - - - - - - C学习笔记4 21 天学通 C# 1由于 sizeof运算符直接操纵内存,因此应尽可能避免使用它。2Switch 语句每一个分支中的语句,必须以break 结束。3随机数int nbr = 0; System.Random rnd = new
7、 System.Randow(); Nbr = (int) rnd.Next(1,11); 4类的说明格式class_name object_identifier = new class_name() ; 关键字 new 用来预留内存。5类中包含:数据成员和函数成员。 (数据成员甚至可以是其他类)数据成员如果不加public限定符,将无法在类的外面访问。访问静态数据成员时, 必须使用类名,而不是对象名。6属性为访问类中的私有变量提供了手段。 重新声明一个 public变量,通过它,利用属性存储器get 和set 中的程序语句赋值或取值,访问私有变量。例:class point int my_X
8、; public int x get return my_X; set 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 19 页 - - - - - - - - - C学习笔记5 my_X = value; 7名称空间是一组被命名的类。 将类集中在一起, 形成名称空间。8通过使用关键字using实现使用类和方法的简捷方式 , 无 需 总 是 指 定 全 限 定 名 称 。 比 如Sytem.Console.WriteLine 是全限定名称,假如使用了 using Syst
9、em ;就可以用Console.WriteLine来使用 Console 类中的例程了。9在 C中例程被称为方法或函数,两者没有区别。10 类的方法要使用所属类的数据成员,可以用 this.数据成员的方法引用。11 给类的方法传递参数时, 要按引用传递, 需要在方法头中的数据类型前面加上关键字 “ref ” 。若要返回参数,需要将其属性设臵为关键字out。调用方法时,参数前也要加上“ out ” 。12 声明数组 decimal balances;然后还要实例化 balances = new decimal 例如:声明一个二维数组,同时实例化,并赋初值char, letters = new c
10、har2,3a,b ,c,x,y ,z 在二维数组中声明长度不同的数组char myname = new char3 myname0=new chara,b ,c; myname1=new chart,k ,i,b ,c; myname2=new chara,b ,o ,c; 引 用 数 组 要 素 时 必 须 用 两 个 方 括 号, 如 ,myname21 数组的长度被存储在一个名为Length 的成员中。myname2. Length 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - -
11、 第 5 页,共 19 页 - - - - - - - - - C学习笔记6 可用 foreach 遍历数组。13方法重载:指的是创建多个 名称相同 的方法。其中每个方法都在某些方面具备唯一性, 以便编译器能够区别它们。每个方法都有其特征标(signature ) ,方法的参数个数及类型决定哪个方法是合适的。但,返回类型不能作为特征标。其实就是 c将名称一样, 参数不同的方法视为不同的方法,并自动匹配。构造函数也可以重载。14 方 法 要接受 未 知数目 的 参数 ,可以 使用 关键 字params,该关键字用于参数列表中, 声明参数列表最后面的值。 params 关键字与数组一起使用。例:
12、public static long add(params int args)Main 方法也可以接受不同数目的参数,但不需要在Main 方法中使用params 关键字。标准做法如下:public static int |void Main(string args) 15 如果类变量是标准的、 非静态变量,可以使用关键字this 。例如,要访问类的数据成员x,使用 this.x。避免与其他局部变量冲突。16 给构造函数加上限定符private实际上可以禁止创建对象。这个类就变成不能创建对象的类了。17 创建名称空间可以使用关键字namespace 后面给标识该名称空间的名称。 然后使用花括号将
13、该名称空间包含的类型括起来。例如:namespace Consts 使用 using 关键字来使用名称空间以后,不必使用全限定名称了。using 还可以为名称空间提供别名。如:using doit = System.Console; doit.WriteLine(blah ); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 19 页 - - - - - - - - - C学习笔记7 18 try 和 catch try 命令给代码块加上包装(用花括号) ,帮助发送(ro
14、ute )任何可能发生的异常。catch 让您捕获 try 命令发送的异常。例如: catch(System.Exception e) Console.WriteLine(The following exception was caught:n0,e); *可有多个 catch 语句, 应该在前面捕获较具体的异常,后面捕获较通用的异常。19 finally 语句不管try 语句是否执行成功,都会执行。20 throw 关键字引发异常 , 并终止程序 . 可以用来作合法性检查 . throw(exception); 21 引发自己的异常前要先声明它. 格式: class ExceptionNam
15、e:Exception 其中, ExceptionName 以 Exception 结尾. 用 throw 引发: throw(new MyThreeException(); /MyThreeException是自己声明的异常22 checked 将过大或过小的值赋给变量将引发异常;unchecked 将过大或过小的值赋给变量时, 直接进行裁剪 . *在编译器中最好设臵 , checked 23 类的继承class derived_class:base_class 例如: class Employee : Person 24 派生类的构造函数后加上冒号和base 关键字 , 就可以调用基类的
16、构造函数 . 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 19 页 - - - - - - - - - C学习笔记8 base() 的括号中填入基类的构造函数的参数 . 当基类的构造函数执行完毕后, 将执行派生类的构造函数中的语句。关键字 base 也可以用于直接调用基类的方法。public new void displayFullName() Console.Write(Emlooyee:); Base.displayFullName(); /displayFull
17、Name()是基类的方法 / 派生类中的新方法displayFullName先显示一行信息,然后调用基类的displayFullName方法。这样就可以扩展基类的功能而不用重写所有代码。派生类中的方法与基类的一个成员方法同名,而且使用了关键字new 。那么该方法将覆盖基类中同名的方法。25虚方法能够调用 实际被赋给的对象 所属类中的方法,而不是基类的方法。 (以便实现多态性)在基类的方法声明中使用关键字virtual。如果这种方法在派生类中被覆盖 (overriddren) ,则在运行阶段,调用的将是变量实际所属类的方法,而不是其被声明的类的方法。这意味着可以使用基类来指向多个派生类,而调用相
18、应的方法。 在 派 生 类 中 同 名 的 方 法 声 明 中 使 用 关 键 字override 。26假如将派生类的对象赋给基类对象变量,基类对象变量也只能访问 基类的数据成员和方法。但是使用了虚拟方法和覆盖方法后。调用的则是它们被实际赋给的值 所属类 中相应的方法。27 强制派生类覆盖基类的方法:使用关键字 abstract ,将基类的方法声明为抽象的。没有方法体(没有花括号,并以分号结束),由派生名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 19 页 - - -
19、 - - - - - - C学习笔记9 类来提供。*基类的声明以及方法声明都要使用abstract ,派生类的同名方法要使用override 。28 密封类(禁止类被继承)使用关键字 sealed 。例:sealed public class number *其数据成员应声明为私有。29 在 C中所有的东西都是Object 类的派生类,都包含 GetType和 ToString 方法。30 装箱(boxing )指的是将值类型转换为引用类型(对象) ;拆箱指的是显示地引用类型转换为值类型,被拆箱的值必须存储到相应的数据类型变量中。31 关键字 is 用于确定变量是否为指定的类型。格式: (ex
20、pression is type ) ,返回 true 或 false 。*主要在程序运行时检查类型32 as 运算符的功能与强制转换类似,将对象强制转换为另一类型。(目标类型必须与源类型兼容)格式: expression as DataType 强制转换格式:(DataType) expression 二者的区别:强制转换出现问题将引发异常;as 关键字,源类型无法转换为目标类型时,首先将其臵为null ,然后再转换为目标类型,因此不会引发异常。33 is 和 as能够让同一个数组中存储数据类型不同的对象,只要这些对象的基类相同即可。*as 转换时不会引发异常, is 用来确定对象类型。34
21、 强 制 向 上 转 换 ( upcasting ) 和 强 制 向 下 转 换(downcasting )强制向下转换是指将对象强制转换为其派生类对象;强制向上转换指的是强制将对象转换为其基类对象。在C中,强制向上转换是安全的,是一种名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 19 页 - - - - - - - - - C学习笔记10 隐式操作;而强制向下转换是不安全的,必须显示进行转换。35 抽象类指的是至少包含一个抽象方法的类。而抽象方法指的是被继承时,必须覆
22、盖的方法。36 接口是另一种类似于类的引用类型。 用途是定义要声明的类中将包含什么, 但不定义实际的功能。 接口类似于抽象方法。接口是关于类需要实现的功能的指南。接口只包含方法、属性、事件和索引器(indexer ) ,而不包含数据成员、 构造函数和析构函数, 也不能包含静态成员。C#通过允许实现多个接口提供了多重继承的功能和好处。37 使用接口的好处:首先, 可以将接口作为一种给结构提供继承特性的途径。另外,可以在一个类中实现多个接口, 从而获得抽象类无法获得的功能。最大的价值,可以给类添加通过其他方法无法实现的特征。另一个好处,强制新的类实现接口定义的所有特征。而继承带虚拟成员的基类, 则
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年C#语言学习笔记 2022 C# 语言 学习 笔记
限制150内