摘要: 随Visual Studio 2010 CTP亮相的C#4和VB10,虽然在支持语言新特性方面走了相当不一样的两条路:C#着重增加后期绑定和与动态语言相容的若干特性,VB10着重简化语言和提高抽象能力;但是两者都增加了一项功能:泛型类型的协变(covariant)和抗变(contravariant) 阅读全文
posted @ 2020-07-19 16:54 Linybo2008 阅读(580) 评论(0) 推荐(0)
摘要: 在.net4之前,泛型接口是不变的。.net4通过协变和抗变为泛型接口和泛型委托添加了一个重要的扩展。 1、协变:如果泛型类型用out关键字标注,泛型接口就是协变的。这也意味着返回类型只能是T。 实例: 1 static void Main(string[] args) 2 { 3 IIndex<R 阅读全文
posted @ 2020-07-19 16:03 Linybo2008 阅读(211) 评论(0) 推荐(0)
摘要: 六种类型的约束: where T:stuct 类型参数必须是值类型。可以指定除 Nullable 以外的任何值类型。有关更多信息,请参见使用可空类型(C# 编程指南)。 where T:class 类型参数必须是引用类型,包括任何类、接口、委托或数组类型。 where T:new() 类型参数必须具 阅读全文
posted @ 2020-07-19 15:31 Linybo2008 阅读(996) 评论(0) 推荐(0)
摘要: default 关键字有两类用法 switch语句中指定默认标签 默认值表达式 switch 语句# int caseSwitch = 1; switch (caseSwitch) { case 1: Console.WriteLine("Case 1"); break; case 2: Conso 阅读全文
posted @ 2020-07-19 15:21 Linybo2008 阅读(579) 评论(0) 推荐(0)
摘要: 一、using指令 在文件顶部引用命名空间,如:using System; 二、using别名 为命名空间或类型定义别名,这种做法有个好处就是当同一个cs文件引用了两个不同的命名空间,但是两个命名空间都包括了一个相同名字的类型的时候,就会为此类型命名空间创建别名。 using System; usi 阅读全文
posted @ 2020-07-19 14:51 Linybo2008 阅读(1926) 评论(0) 推荐(0)
摘要: 在我们程序中,经常有这样一些需求: 1. 需要一个临时方法,这个方法只会使用一次,或者使用的很少。 2. 这个方法的方法体很短,以至于比方法声明都短,写起来实在没劲(我将其称之为“一句话方法”)。 没办法,这样的方法写起来真是吃力不讨好,比如一些按钮事件处理中,有些按钮点击就是弹出一个对话框,或者调 阅读全文
posted @ 2020-07-19 14:23 Linybo2008 阅读(251) 评论(0) 推荐(0)
摘要: 一、Action泛型委托 和之前委托最大区别在于不用定义委托,直接实例化委托(申明就可以),泛型其实就是选择数据类型,进行使得程序更加安全,并且也实现了委托的重载,最多选择16个参数。 namespace 自定义委托 { class Program { Action<string> actHandl 阅读全文
posted @ 2020-07-19 14:19 Linybo2008 阅读(497) 评论(0) 推荐(0)
摘要: 一、一般委托方式 Func<int, int, int> AddMethodHander; public unName() { AddMethodHander += AddMethod; } public int AddMethod(int num1, int num2) { int result 阅读全文
posted @ 2020-07-19 14:18 Linybo2008 阅读(152) 评论(0) 推荐(0)