C# 中的委托、事件、Lambda 表达式及异常处理
1. 类型参数的协变与逆变
在 C# 中,为了让类型转换能自然地遵循类型间的继承关系,可以对类型参数进行协变( out )和逆变( in )标记:
- 协变( out ) :仅用于返回值的类型参数标记为协变。例如, System 命名空间中的 Func 委托就是协变的:
delegate TResult Func<out TResult>();
Func<string> x = ...;
Func<object> y = x;
- 逆变(
in) :仅用于参数的类型参数标记为逆变。例如,System命名空间中的Action委托就是逆变的:
delegate void Action<in T> (T arg);
Action<object> x = ...;
Action<string> y = x;
2. 事件
2.1 广播者与订阅者
在使用委托时,通常会出现
超级会员免费看
订阅专栏 解锁全文
471

被折叠的 条评论
为什么被折叠?



