随笔分类 - 01-c#基础
摘要:委托与事件在C#1.0的时候就有了,随着C#版本的不断更新,有些写法和功能也在不断改变。本文温故一下这些改变,以及在NET Core中关于事件的一点改变。 一、C#1.0 从委托开始 1. 基本方式 什么是委托,就不说概念了,用例子说话。 某HR说他需要招聘一个6年 .NET5 研发经验的“高级”工
阅读全文
posted @ 2020-06-30 17:26
Linybo2008
摘要:Reflector是.NET开发中必备的反编译工具。即使没有用在反编译领域,也常常用它来检查程序集的命名规范,命名空间是否合理,组织类型的方法是否需要改善。举例说明,它有一个可以查看程序集完整名称的功能,请看下图 这里的Name,是标识一个程序集的完整标识,当GAC中存在程序集的多个版本时,这个名称
阅读全文
posted @ 2020-06-30 14:40
Linybo2008
摘要:Expression Evaluator 是一个轻量级的可以在运行时解析C#表达式的开源免费组件。表达式求值应该在很多地方使用,例如一些工资或者成本核算系统,就需要在后台动态配置计算表达式,从而进行计算求值。相比 NCal,还是这个 Expression Evaluator 比较强大,虽然部分功能有
阅读全文
posted @ 2020-06-24 17:31
Linybo2008
摘要:线程统一取消模型的基本方法和跨线程访问UI的常用套路。最后简介桌面程序BackgroundWorker组件的使用,助你更方便实现跨线程访问UI的需求 知识需要不断积累、总结和沉淀,思考和写作是成长的催化剂,输出倒逼输入 内容目录 一、线程统一取消模型1、取消令牌2、可以中断的线程1、设计一个中断函数
阅读全文
posted @ 2020-06-24 10:17
Linybo2008
摘要:知识需要不断积累、总结和沉淀,思考和写作是成长的催化剂 梯子 一、锁1、lock2、Interlocked3、Monitor4、SpinLock5、Mutex6、Semaphore7、Events1、AutoResetEvent2、ManualResetEvent3、ManualResetEvent
阅读全文
posted @ 2020-06-24 10:13
Linybo2008
摘要:知识需要不断积累、总结和沉淀,思考和写作是成长的催化剂 梯子 一、任务Task1、启动任务2、阻塞延续3、任务层次结构4、枚举参数5、任务取消6、任务结果7、异常二、并行Parallel1、Parallel.For()、Parallel.ForEach()2、Parallel.For3、Parall
阅读全文
posted @ 2020-06-24 10:12
Linybo2008
摘要:知识需要不断积累、总结和沉淀,思考和写作是成长的催化剂 内容目录 一、线程Thread1、生命周期2、后台线程3、静态方法1.线程本地存储2.内存栅栏4、返回值二、线程池ThreadPool1、工作队列2、工作线程和IO线程3、和Thread区别4、定时器 一、线程Thread .NET中线程操作封
阅读全文
posted @ 2020-06-24 10:11
Linybo2008
摘要:知识需要不断积累、总结和沉淀,思考和写作是成长的催化剂 异步多线程挺大一块内容,既想拆开慢慢学,又想一股脑全倒出。纠结再三,还是拆开吃透,也不至于篇幅过长,劝退许多人 本篇先做一个概述,列明一些基本概念 内容目录 一、进程和线程1、进程2、线程多线程后台线程3、简言之4、适用场景二、同步和异步1、同
阅读全文
posted @ 2020-06-24 10:09
Linybo2008
摘要:知识需要不断积累、总结和沉淀,思考和写作是成长的催化剂 内容目录 一、Lambda表达式1、匿名方法2、Lambda表达式二、Linq概述三、查询操作符1、linq初见2、常用查询操作符筛选排序分组连接合并分页聚合转换四、并行Linq五、表达式树1、认识表达式目录树2、拼装表达式树3、应用六、小结
阅读全文
posted @ 2020-06-24 10:06
Linybo2008
摘要:知识需要不断积累、总结和沉淀,思考和写作是成长的催化剂 内容目录 一、概述二、反射1、反射使用2、创建对象3、调用方法4、字段属性三、特性四、总结 一、概述 反射其实无处不在,我们用VS进行调试时候,查看成员列表、修改变量值都是通过反射来实现的。我们写业务代码可能很少去写反射,但理解反射是从菜鸟到大
阅读全文
posted @ 2020-06-24 09:52
Linybo2008
摘要:1.打开VS2013 --> 新建一个项目。这里我们默认创建一个控制台项目。取名为UnitTestDemo 2.在解决方案里面新增一个单元测试项目。取名为UnitTestDemoTest 创建完毕后项目结构大概如下: 3.进入控制台项目UnitTestDemo的Program类,创建一个Add方法。
阅读全文
posted @ 2020-05-30 17:56
Linybo2008