c#资料
类型系统:
运行模型:
整型:
浮点:
财务:
布尔:
字符:
引用类型:
Console控制字符:
{序号,空间:控制字符与精度} 如:{0,3:C2}
{空间:#.00} 其中,#表示该位置如果有字符就显示,否则忽略;0如果有显示,否则显示0
xml注释:
类权限控制符:
类修饰符:
泛型约束:
yield语句原理:
1.创建可枚举类型
2.使用
3.生成原理
正则表达式:
转移符\ ; [1|c] 1或c ; [a-z] a到z之一
集合高层接口:
集合性能:
LINQ查询操作符:
筛选:普通筛选(where);索引筛选(.Where((r,index)=>bool);类型筛选(OfType<type>())
源选择:普通源(from);复合源(SelectMany(源选择器,目标选择器) )
排序:普通排序(orderby等);反转(.Reverse() )
分组:普通分组(group r by r.id into g )生成新的IGrouping<key,source>结构数据源
源连接:join 连接源 on 键选择相等判断器
集合操作:Distinct()删除重复元素;Union并集,Except差集,Intersect交集,Zip合并项
分页:Skip(跳过项数).Take(返回项数)
统计:Count()项数,Sum()累加,Min()最小值,Max()最大值,Average()平均值,Aggregate()累算
转换:ToList()等
生成源:Range()整数范围,Empty()空序列,Repear()重复项。
判断:Any任一项符合条件即返回布尔值;All 所有项;Contains 存在项;
查找:First()首项,Last()尾项,Single()唯一项,ElementAt()位置项
并行LINQ:AsParallel()转换成并行源。
规则:
1.局部变量使用前须初始化。
2.var 变量须初始化,由编译器推断出类型,是一个语法糖。如是引用类型必须为新建对象。var可绑定匿名类型,如:var obj= new {Sex=”girl”,Age=21};
3.局部变量不能在作用范围内重名。
4.常量须初始化,须编译期值可用,固定为static(静态)。
5.switch的case必须为常量,当某case段为空可以跳到下一case执行。
6.命名空间别名前缀是::
7.静态构造函数由运行库调用,因此有特定的规格,无访问修饰符,无参数。
8.readonly只能在构造函数中设置。
9.构造初始化器调用另一个构造函数 (构造函数后:this(…) 或者 : base(…) )。
10.结构有默认构造,无法替换
11.结构字段不接受初始值
12.静态类的静态函数,第一个参数类型是”this 某类”,则为某类的扩展方法。(语法糖)
13.内嵌类可访问外部类所有成员。
14.泛型:default( T ) 泛型默认值。
15.策略:协变(out)接口用于参数类型,抗变(in)接口直接调用元素。
16.可空类型int? ,?? 受编译系统厚爱,充满语法糖和特殊编译插入。
17.foreach (var p in persons) Console.writeLine( p); ==>IEnumerator<Person> enumerator=persons.GetEnumerator(); while(enumerator.MoveNext()){ Person p = enumerator.Current; Console.WriteLine( p);}
18.装箱操作:1.调用继承的函数(如果已重写就不会);2.复制到引用基类或接口;3.个人意见,用泛型解决装箱的问题。
19.比较操作包括:1.静态Object.ReferenceEquals()比较引用一致;2.虚拟Equals();3.静态Equals();4.比较运算符==;5.IEqualityComparer<T> 6.比较器。假如比较代码由自己控制,用比较器定义相等较为灵活;假如要集成进某个库,重载Equals();
20.委托具备多播功能,相关操作符+,+=,-,-=。
21.lambda访问外部变量是通过产生匿名类传递变量。
22.事件在语法上有些类似属性,包装委托变量。
23.Idisposable接口实现释放资源操作,GC.SuppressFinalize(this)让系统不再调用该对象析构函数,提升性能。策略一.当不理会托管资源时,只需保证Dispose()可重入,析构函数调用Dispose();策略二.当想调控托管资源,用Dispose(false)对应析构函数调用操作,Dispose(true)对应Dispose()操作,两者差异在于直接调用Dispose()需要负责释放托管资源,并调用GC.SuppressFinalize(this)来告之系统不再调用析构函数。
24.Exception 异常基类,IOException IO异常,SystemException dotNet系统异常,ApplicationException第三方定义异常,StackOverflowException栈溢出异常,EndOfStreamException 超出流末端异常,OverfalowException溢出异常,ArgumetException参数异常