C# 接口、抽象类、字符串、委托、多播委托、匿名函数、观察者模式

接口 interface
接口定义了属性,方法和事件,接口只包含成员的声明,成员的定义是属于派生类的责任
1.接口成员是不允许有访问权限修饰符
2.接口是不能直接实例化,但是可以间接实例化
3.继承接口类,必须将接口中的成员全部实现,且成员名和接口中定义的名字保持一致
4.如果一个接口继承了其他接口,那么实现的类就需要实现所有接口成员

接口与抽象类区别:
相同点:
1.都可以被继承
2.都不能直接实例化
3.自身不提供代码实现,具体实现在子类中进行
4.派生类中必须实现未实现的方法
不同点:
1.抽象类中可以定义字段,属性,方法的实现,

        但是接口中只能定义属性,事件,以及方法的声明,不能包含字段
2.单继承类,多继承接口
3.接口具有专一性,而不是多功能,否则会造成接口污染

字符串

字符串变量
stringbuilder
1.少量字符串操作,且字符串不经常发生变化时,优先使用stirng
2.stringbuilder创建后大小是可以发生变化,但是string大小是不可变的
3.stringbuilder可以自动扩容,且2倍扩容

匿名函数
提供了一种传递代码块作为委托参数的技术,匿名函数是没有方法名,只有函数主体,在匿名函数中不需要指定返回值类型,系统会在函数体中通过return语句自动推断
匿名函数只能将方法赋值给委托,通过委托调用该方法

lambda表达式

委托:(函数指针)  delegate
存有对某个方法的引用的一种引用类型
 访问权限 delegate 返回值类型 委托名(参数类型)

多播委托
只有相同类型的委托才可以被合并


 

系统提供的委托

Func:有返回值
Action:无返回值
Predicate:返回值为bool


事件 event
事件是基于委托的,事件是一种具有特殊签名的委托

观察者模式
例子:猫叫,老鼠跑,人醒

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值