星空网 > 软件开发 > ASP.net

.NET笔记(二)

null合并运算符

?? 运算符称作null 合并运算符。如果此运算符的左操作数不为null,则此运算符将返回左操作数;否则返回右操作数。

使用Average而产生的一个错误

因为数据中有DBNull,所以应该写成

  decimal? avgUPri = dt.AsEnumerable().Average(q => q.Field<decimal?>("单价"));

ref、out

out参数比较简单,加了之后就不需要先申明变量了。
ref参数使用引用变量时,有些要注意的地方。如果只改变引用对象的成员,那么用不用ref都是一样的效果,但如果要将引用对象进行重新赋值,要得到新的引用的对象,就必须使用ref了,否则不能改变对象。

断言

请不要将函数调用放在 Debug.Assert 语句中。改用临时变量

List

ArrayList //存储对象,当存储值类型数据时需要装箱,消耗较大。一个ArrayList可以存储不同的数据类型
Array<T> //指定泛型,不需要装箱、拆箱

泛型

优点:算法重用、类型安全、相比object没有拆箱、装箱的性能损耗
泛型约束where:,可以约束接口、基类、类型、默认构造函数()
MyClass<T>where T : IComparable<T> //约束T必须实现IComparable接口、基类同理
where T : class //约束T类型必须为引用类型
where T : struct //约束T类型必须为值类型
where T:new() //约束T类型有一个公共无参构造器

协变、抗变

逆变:
泛型类型T可以从基类型更改为该类的派生类型,
用in关键字标记逆变形式的类型参数,
而且这个参数一般作输入参数。

协变:
泛型类型T可以从派生类型更改为它的基类型,
用out关键字来标记协变形式的类型参数,
而且这个参数一般作为返回值

同步异步

同步和异步关注的是消息通信机制

同步:调用者主动等待调用结果
异步:被调用者通知调用者结果

阻塞非阻塞

阻塞和非阻塞关注的是程序在等待调用结果(消息,返回值)时的状态

阻塞:调用结果返回之前,调用者挂起
非阻塞:在未获得调用结果之前,调用者不用被挂起

线程

做foreach循环时多考虑线程安全性

在foreach时不要试图对被遍历的集合进行remove和add等操作

任何集合,即使被标记为线程安全的,在foreach的时候,增加项和移除项的操作都会导致异常

linq

from [type] id in source[join [type] id in source on expr equals expr [into subGroup]][from [type] id in source | let id = expr | where condition][orderby ordering,ordering,ordering...]select expr | group expr by key[into id query]




原标题:.NET笔记(二)

关键词:.NET

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

零售业:https://www.goluckyvip.com/tag/11575.html
穆斯林:https://www.goluckyvip.com/tag/11576.html
特朗普加税:https://www.goluckyvip.com/tag/11577.html
商务部发布会:https://www.goluckyvip.com/tag/11578.html
KOL网红营销:https://www.goluckyvip.com/tag/11579.html
Helium 10:https://www.goluckyvip.com/tag/1158.html
西安到都江堰旅游攻略有什么?:https://www.vstour.cn/a/407236.html
9月张家界有什么好玩的地方 张家界有几个好玩的地方:https://www.vstour.cn/a/407237.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流