1、C#中类成员的访问修饰符有哪些
public : 公有的,任何位置都可以访问。
private : 私有的, 只有类的自身才能访问。
protected : 受保护的,只有类的自身及其派生类才能访问。
internal: 内部的,同一个程序集里面的任何位置都能访问。
protected internal:内部受保护的,同一个程序集里面的任何位置,或者不同程序集中的派生类可以访问。
2、类和结构的区别
类是引用类型,结构是值类型。
类可以继承,也可以实现接口;结构不能继承,但可以实现接口。
类可以有显式声明的无参数构造函数,;结构不能包含显式的无参数构造函数。
结构中不能有实例字段初始值设定,但类没有限制。
类的构造函数里面可以不用对所有字段进行初始化;结构的构造函数里面必须对所有字段进行初始化。
类可以有析构函数,但结构不行。
3、面向对象的三大特征是什么?
继承、封装、多态
4、抽象类和接口的区别
相同点:
不能被直接实例化。
可以包含任意个抽象成员。
不同点:
抽象类也是类,具有类的共同特点;单基类继承,多接口实现;接口不是类,只能继承多个接口。
抽象类中也可以包含已经实现的非抽象成员;接口中所有的成员都是抽象的、没有实现的。
5、接口可以包含哪些成员?
方法、属性、事件、索引器
6、什么是装箱和拆箱?
装箱:将值类型转换为object类型或由此类型实现的任何接口类型。
拆箱:将object类型或接口类型转换为实际的值类型。
7、C#中,哪些类型是值类型?哪些类型是引用类型?
值类型:结构、枚举。
引用类型:类、接口、委托、数组、字符串。
8、值类型和引用类型的区别?
一般情况下,值类型的数据存储在线程栈上,引用类型的数据存储在托管堆上。
值类型的变量,变量本身存储的就是实际的数据;引用类型的变量,变量本身存储的仅仅是实际数据的引用地址,而实际的数据存储在托管堆上。
在作为参数进行传递是,值类型参数传递的是值得副本,在方法中对该值进行修改不会影响原始值;引用类型参数传递的是参数的引用地址,在方法中对该参数进行修改会对托管堆上该地址的实际数据进行修改,从而会影响原始值。
还没有评论,来说两句吧...