摘要: SortedList表示键/值对的集合,这些键/值对基于关联的 System.Collections.Generic.IComparer<T> 实现按照键进行升序排序public class SortedList<TKey, TValue> : IDictionary<TKey, TValue>, ICollection<KeyValuePair<TKey, TValue>>, IEnumerable<KeyValuePair<TKey, TValue>>, IDictionary, ICollection, 阅读全文
posted @ 2013-04-27 17:10 赶路人之刚出发 阅读(260) 评论(0) 推荐(0) 编辑
摘要: public class Classroom { /// <summary> /// 班级Id /// </summary> public int ClassId { get; set; } /// <summary> /// 班级名称 /// </summary> public string ClassName { get; set; } } public class Student { /// <summary> ///... 阅读全文
posted @ 2013-04-27 15:52 赶路人之刚出发 阅读(419) 评论(0) 推荐(0) 编辑
摘要: 与linq to sql类似,所有继承了IEnumerable的类型均可使用LINQ,如下string[]数组基类为Array,而Array实现了IEnumerable,所以也可使用linqstatic void Main(string[] args) { string[] myWords = new string[] { "what", "is", "your", "name", "my", "name", "is" }; var obj = from 阅读全文
posted @ 2013-04-24 17:33 赶路人之刚出发 阅读(114) 评论(0) 推荐(0) 编辑
摘要: yield return 用以生成IEnumerable类型的结果集,如下例所示,当第15行之行时,函数MyWhere并不会执行,而当第18行之行时会从第5行开始执行,在找到第一个偶数2时,函数MyWhere返回,执行第18行打印数字2,然后再调用第5行找到第二个偶数4,MyWhere又返回,继续执行第18行打印数字4。当执行到第22行时,函数MyWhere又会重新一次一次的执行。MyWhere是为IEnumerable<T>类型定义的一个扩展方法,比如List<int>就是实现了IEnumerable的泛型方法,即可自动调用MyWhere这个扩展方法。Func< 阅读全文
posted @ 2013-04-24 17:17 赶路人之刚出发 阅读(197) 评论(0) 推荐(0) 编辑
摘要: Lamda表达式:delegate int MyAdd(int i); delegate int Dosome(); static void Main(string[] args) { MyAdd myAdd; //隐试声明一个参数,表达式方法体 myAdd= x => x + 1; //显示声明一个参数,表达式方法体 myAdd = (int x) => x + 1; //显示声明一个参数,多语句方法体 ... 阅读全文
posted @ 2013-04-24 16:44 赶路人之刚出发 阅读(547) 评论(0) 推荐(0) 编辑
摘要: .net中所有托管资源均有GC自动回收,那非托管资源怎么办呢?IDisposable接口就是设计用来显示释放非托管资源,如果是直接调用dispose方法,则无需再经由finalizer方法去调用this.Dispose(false)去释放托管资源,所以需在Dispose()方法中加上GC.SuppressFinalize(this);以提醒系统无需再调用析构函数,所有托管、非托管资源均会在Dispose(True)方法中释放,否则仍由Finzlizer方法调用Dispose(false)方法以便释放非托管资源,托管资源由GC直接回收 public class MyBaseResourceMa. 阅读全文
posted @ 2013-04-19 11:12 赶路人之刚出发 阅读(476) 评论(0) 推荐(0) 编辑
摘要: 匿名类型匿名类型就是没有名字的类型。在C#3.0中允许我们在程序中声明一个临时的类型来存储数据,例如:var noname = new { name = "Jerry", age = 10 };编译器编译后的反编译出来的代码为:View Code [DebuggerDisplay(@"\{ name = {name}, age = {age} }", Type="<Anonymous Type>"), CompilerGenerated]internal sealed class <>f__AnonymousT 阅读全文
posted @ 2013-04-11 17:15 赶路人之刚出发 阅读(288) 评论(0) 推荐(0) 编辑
摘要: 对象初始化器和集合初始化器,类似自动属性,一种省事的写法,参见下例绿色部分:1 namespace Demo 2 { 3 class Program 4 { 5 static void Main(string[] args) 6 { 7 //以前我们可能这么写 8 //对象 9 Person p1 = new Person();10 p1.Name = "Joey";11 p1.Age = 25;12 /... 阅读全文
posted @ 2013-04-11 16:27 赶路人之刚出发 阅读(187) 评论(0) 推荐(0) 编辑
摘要: C#2.0中为类定义一个没有复杂读取、写入逻辑的属性,比如定义一个Age属性如下: private int age; public int Age { get { return age; } set { age = value; } }那么在C#3.0中就... 阅读全文
posted @ 2013-04-11 16:16 赶路人之刚出发 阅读(208) 评论(1) 推荐(0) 编辑
摘要: .net中的Randome类可以用于获取随机数,但并非真正意义上的随机,缺点有二:当种子相同时,生成的随机数列一定是相同的,默认用的是当前系统启动后的毫秒数为种子;生成的随机数列很有可能有重复,也就是所有随机数出现的概率并不完全相同;比如:View Code Random mr = new Random(10); for (int s = 0; s < 10; s++) { Console.WriteLine(mr.Next(10)); } Console.WriteLine(... 阅读全文
posted @ 2013-04-11 15:31 赶路人之刚出发 阅读(650) 评论(0) 推荐(0) 编辑