-
事件声明:
delegate void Handler();
public event Handler(委托类型) NewDog(事件名);
NewDog是一个成员,并且会被隐式自动初始化。
事件订阅
NewDog+=方法(订阅)
NewDog-=方法(取消订阅)
方法可以是,实例方法,静态方法,匿名方法
Lambda表达式
事件触发
if(NewDog!=null){
NewDog();
}
事件可以理解成是一种封装的受限制的委托。
查看全部 -
泛型类:
语法展示:
class Cage<T>{
T[] petsArray;
public void Putln(T pet){//.......}
public T TackOut(int idnex){//.....}
}
T:就是指外部传进来的具体类型。
而T[]就是外部传进来的具体类型,
T方法中的T就是一个占位符。
为什么需要泛型类?
大大减少了工作量。
定义泛型类:
class Cage<T>{...}
使用|实例化
Cage<Dog>dog=new Cage<Dog>();
查看全部 -
静态构造函数查看全部
-
静态成员不能访问实例成员,反之可以查看全部
-
静态成员相当于共有财产查看全部
-
类转换接口时,是因为该类继承了该接口,所以可以调用已经实现了的接口方法。
而自定义转换是要两个派生类之间的转换,是无法调用对方的重写的方法。如果是基类的话是可以直接将派生类强制转换来调用派生类的方法的
查看全部 -
多态性是允许你将父对象设置成为一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作
查看全部 -
object 是所有类的基类,也包含所有数据类型。
查看全部 -
封装,继承,多态
查看全部 -
设计原则,设计模式查看全部
-
结构是值类型(在栈中),类是引用类型(在堆中)
结构不支持继承但是可以实现接口,类支持继承
结构不能定义默认的构造函数,编译器会定义
查看全部
举报