首页 > 其他 > 详细

C#基础

时间:2014-03-03 20:31:42      阅读:287      评论:0      收藏:0      [点我收藏+]

1、面向对象、面向接口、面向方向编程的区别:

面向对象:强调对具有相同行为和属性事物的封装,更注重封装的完整性和功能的完整性

面向接口:定义要实现某类功能要实现的统一规范,而具体实现过程由实现该接口的类型决定

面向方面:主要提供与业务逻辑无关的操作。比如系统中多个地方要使用到的文件上传功能,可以使用面向方向的思想在所有上传文件之前对文件的大小、格式等信息进行过滤操作,而不是在每处上传代码里面完成对这些信息的过滤。

2、接口和类的区别

接口:不能实例化,自己没有状态,方法也没有具体的实现,被继承时,继承类必须实现接口的所有方法。接口就像租房时网上下载的一个租房合同模板。

类:可以被实例化,有状态,被继承时,继承类也不需要重新实现被继承类中的方法。但是如果被继承类的方法中有abstract修饰的,继承类则需要实现这个方法。类像是已经被填上内容的租房合同模板。

3、抽象基类和接口的对比

接口是用来定义行为规范的,不会有具体实现,而抽象类除定义行为规范外,可以有部分实现,但一个类能实现多个接口,但只能继承一个基类。接口是一种契约,定义了继承它的类必须声明接口中的方法。

区别:接口只有方法、属性、事件和索引符;类除了这四种成员之外还可以有别的成员(如字段)。接口没有构造函数,类有构造函数。

接口不能进行运算符的重载,类可以进行运算符重载。

接口成员没有任何修饰符,其成员都是公共的,而类的成员则可以有修饰符。派生于接口的类必须实现接口中所有的方法成员,而从类派生则不然。

4、a.Equals(b)与a == b的区别?

equals:比较两个变量的内容是否相等

==:比较两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。

5、在对象比较中,对象一致和对象相等分别是指什么?

对象一致指的是引用相同。对象相等指的是内容相等。

6、什么是拆箱操作和装箱操作?

拆箱操作就是引用类型转变为值类型,通常伴随着从堆中复制对象实例的操作

装箱操作就是值类型数据转换为Object类型的引用对象

7、string类型是值类型还是引用类型

引用类型

8、DateTime类型的对象值可以为null么?

不可以,DateTime是struct,是值类型,只有引用类型可以赋值为null

9、关键词new的含义?有何副作用?

new在基类没有virtual关键字修饰的情况下必须使用,副作用是破坏了继承关系

10、virtual、sealed、override和abstract关键字

virtual:virtual关键字用于修饰方法、属性、索引器或事件声明,并使它们可以再派生类中被重写。例如,此方法可以被任何继承它的类重写

sealed:当对一个类或者方法,此修饰符会阻止其他类从该类继承或者方法无法被继承。

abstract:abstract修饰可以和类、方法、属性、索引器及事件一起使用。在类声明中使用abstract修饰符以指示某个类只能是其他类的基类。标记为抽象或者包含在抽象类中的成员必须通过从抽象类派生的类来实现。

11、public、protected、private、internal之间的区别

public:对任何类和成员都公开,无限制访问。

protected:仅仅对该类以及该类的派生类公开。

private:仅仅对该类公开。

internal:只能在包含该类的程序集中访问该类(只是单独的项目,而不是整个解决方案)。

12、this是什么?可以再静态方法中使用this么?

this用于调用当前实例,无法再static方法中调用this。

C#基础,布布扣,bubuko.com

C#基础

原文:http://www.cnblogs.com/lit10050528/p/3577803.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!