dotnet之葵花宝典(综合整理版)

dotnet之葵花宝典(综合整理版)

ID:6650235

大小:482.50 KB

页数:37页

时间:2018-01-21

dotnet之葵花宝典(综合整理版)_第1页
dotnet之葵花宝典(综合整理版)_第2页
dotnet之葵花宝典(综合整理版)_第3页
dotnet之葵花宝典(综合整理版)_第4页
dotnet之葵花宝典(综合整理版)_第5页
资源描述:

《dotnet之葵花宝典(综合整理版)》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、1.CLR、CTS、CLS分别是什么意思?共公语言运行库,通用类型系统,公共语言规范2.什么是基元类型?由编译器直接支持的数据类型称为基元类型.例如:C#中的int,string等等就是,实际运行过程中被映射为FCL中对应的类型(java中叫做包装类)如:System.Int32,System.String.3.值类型和引用类型的区别是什么?为什么要设计值类型?值类型会被GC回收吗?值类型是否能在托管堆分配?1.a.值类型的数据存储在内存的栈中;引用类型的数据存储在内存的堆中,而内存单元中只存放堆中对象的地址。b.值类型

2、存取速度快,引用类型存取速度慢。c.值类型表示实际数据,引用类型表示指向存储在内存堆中的数据的指针或引用d.值类型继承自System.ValueType,引用类型继承自System.Objecte.C#中基本数据类型是值类型,结构也是值类型。而数组、类、接口、字符串都是引用类型。2.设计值类型为了效率高,快速分配空间3.它在栈上,不会被GC回收.(GC只回收托管堆上的内容)4.不可以,除非将它装箱.4.Equals、==、ReferenceEquals如何区别使用?Equals确定指定的实例是否被视为相等,但是如果为空就

3、不能被调用,常被重写override==:对于预定义的值类型,如果操作数的值相等,则相等运算符(==)返回true,否则返回false。对于string以外的引用类型,如果两个操作数引用同一个对象,则==返回true。对于string类型,==比较字符串的值。ReferenceEquals是Object的静态方法,用于比较两个引用类型的对象是否是对于同一个对象的引用。对于值类型它总是返回false。5.什么是虚方法?如何理解多态?虚方法就是用virtual修饰的方法.调用虚方法时,将为重写成员检查该对象的运行时类型。将调

4、用大部分派生类中的该重写成员,如果没有派生类重写该成员,则它可能是原始成员.它是实现多态的途径之一.通过多态,实现了对象的多样性,并且实现迟绑定,提高程序的灵活性.6.overload和override有什么区别?Overload:c#没有该关键字,理解为重载,属于运行前,编译时的一种技术.是继承的范畴.Override:是运行时技术,用它实现多态.方法的重写Overriding和重载Overloading是多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多

5、态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写(Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。7.基于接口编程的目的是什么?什么情况下使用接口,什么情况下使用抽象类?目的:(1)a.采用基于接口编程的项目,业务逻辑清晰,代码易懂,方便扩展,可维护性强。

6、b.接口和实现分离了,适于团队的协作开发。C.可以参看IDP原则。(2)用来对实现它的类提供约束用接口(3)当要访问到数据成员或属性时,用抽象类.基于接口编程的目的是为了提高程序的灵活性.当一个类要准备继承多个类的时候,必须用接口,当一个类需要被继承且有方法必须要被定义时,用抽象类.8.委托是什么意思?什么叫委托链?我们能在代码中继承MulticastDelegate吗?(1)委托是一个可以对方法进行引用的类。与其他的类不同,委托类具有一个签名,并且它只能对与其签名匹配的方法进行引用1.委托是通过对方法名的调用来调用方法

7、的一种对象,委托类似于C++函数指针,但它们是类型安全的。委托允许将方法作为参数进行传递。委托可用于定义回调方法。2.将多个委托链接在一起,供对象使用,构成委托链3.MulticastDelegate是一个特殊类。编译器和其他工具可以从此类派生,但是不能显式地从此类进行派生9.实现Iterators一般用到哪些接口?IEnumerable,IEnumerator10.请写一个简单泛型类型,要求有两个泛型参数T、K,其中T必须是值类型,K必须实现了IDisposable接口。classcls    whereT:

8、struct    whereK:IDisposable{     privatebooldisposed=false;      publiccls() { }     publicvoidDispose()      {           Dispose(true);           GC.Suppress

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。