1、C#中的委托是什么?事件是不是一种委托?
答:委托可以把一个方法作为参数代入另一个方法。委托可以理解为指向一个函数的引用,事件是一种特殊的委托。
2、override与重载的区别
答:override就是重写,即重新编写,例如,假设动物类存在"跑"的方法,从中派生出马和狗,马和狗的跑得形态是各不相同的,因此同样方法需要两种不同的实现,这就需要"重新编写"基类中的方法. “重写”基类方法就是修改它的实现或者说在派生类中重新编写;
overload就是重载,简单地说,一个类中的方法与另一个方法同名,但参数表不同,这种方法称之为重载方法
重写的特点:1、必须是在继承里;2、方法名、返回值类型、参数个数和参数类型 都必须相同;3、派生类重写的方法的访问权限不能低于基类的权限
重载的特点:1、方法名相同,参数个数以及类型不同
object类是一切类的基类,因此不可作为父类,被继承
3、什么是装箱和拆箱
答:从值类型接口转换到引用类型装箱,从引用类型转换到值类型拆箱。
装箱用于在垃圾回收堆中存储值类型。 装箱是值类型到 object 类型或到此值类型所实现的任何接口类型的隐式转换;
取消装箱(拆箱)是从 object 类型到值类型或从接口类型到实现该接口的值类型的显式转换。 取消装箱操作包括:
-
检查对象实例,以确保它是给定值类型的装箱值。
-
将该值从实例复制到值类型变量中。
int i=123;//a value type object o=i;//boxing int j=(int) o;//unboxing