C#基础学习
方恨水
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C#程序集Assembly添加友元程序集
在创建.Net Framework的类库中,假如使用了internal关键字标记了方法,关键字,属性时,那么就只能在当前的程序集中使用。那么需要在单元测试或者其他的程序集中使用呢?如何处理?假如更改成pubic就失去了internal的意义。在.Net Framework的类库中都有一个AssemblyInfo.cs文件,该文件描述了当前程序集的一些信息,可以通过在该文件添加[assembly...原创 2019-03-06 00:23:07 · 1130 阅读 · 0 评论 -
使用static和readonly关键字构造饿汉式日志单例
一)使用static和readonly关键字构造单例的原由使用这两个关键字的原因主要基于它们有以下几个特征,虽然它们还有其他很多特征,但是理解以下几个特征会更容易理解如何构造单例。1.static关键字的几个重要特征:1)静态成员只被创建一次,静态成员是属于类而不是实例对象2)一个类即使被创建多个实例,它的静态成员都只有一个3)静态方法只能被重载,而不能被重写2.reado...原创 2019-03-14 23:10:15 · 768 阅读 · 0 评论 -
C#基于任务的异步编程基础(一)之Task管理多线程
在C#4.0以后,可以使用System.Threading.Tasks下的Task类来创建和管理多线程,下面将记录如何简单的使用Task.一、使用Task执行静态方法在控制台编写如下下面: static void Main(string[] args) { string tid = Thread.CurrentThread.Man...原创 2019-03-17 21:53:39 · 2058 阅读 · 0 评论 -
C#基于任务的异步编程基础(二)之async和await创建异步方法
在上一篇文章《C#基于任务的异步编程基础(一)之Task管理多线程》中介绍了Task关键字的基本用法,这篇文章将主要介绍async关键字。一、async的背后当方法使用async标识之后,和普通方法有了什么区别,在async背后,编译器做了什么?1.当使用async标识之后,编译器会理解为这个方法里面可能会用到await关键字,编译器将会在状态机中编译此方法,当方法执行到await关键...原创 2019-04-07 21:47:43 · 1056 阅读 · 0 评论 -
C#使用命名管道与其他进程间通讯(一)
命名管道常常用于应用程序之间的通迅,因为不需要进行序列化和反序列化操作,所以效率是非常高的,C#也提供了NamedPipeServerStream与NamedPipeClientStream两个类库用于进程间命名管道通讯,由此写两篇文章记录一下这两个类库的用法。本文章欲构建一个Server端从队列中取数据发送到客户端,文章的实际意义,一方面可以展示这两个类库的使用,另一方面可以对在实际项目中有一定...原创 2019-04-21 22:43:30 · 2530 阅读 · 0 评论 -
C#基于任务的异步编程基础(三)之异步方法并行
在上篇《基于任务的异步编程基础(二)之async和await创建异步方法》介绍了async和await的基本用法,这节将重点介绍如何并行执行异步和多个异步方法的异常处理。一个异步方法中,可以调用一个或多个异步方法,代码如何实现主要取决于一个异步方法的结果是否依赖另外一个异步方法,本文只展示多个异步方法独立运行的场景,一般情况下一个异步方法不会依赖另一个异步方法,否则还不如同步执行更易阅读。...原创 2019-05-05 23:29:05 · 1067 阅读 · 0 评论 -
C#基于任务的异步编程基础(四)之异步方法异常处理
在前面几篇文章的展示了如何使用Task\async\await关键字实现异步编程,在《C#基于任务的异步编程基础(三)之异步方法并行》也展示了如何正确的处理多个异步方法并行,在实际项目中,逻辑复杂,难免会有意料之中和意料之外的错误,那么本文将用示例代码展示如何正确的处理异步方法的异常。一、构建异常方法1、创建抛出异常的方法,代码如下: private async stat...原创 2019-05-08 21:58:37 · 1549 阅读 · 0 评论 -
C#泛型基础(一)之泛型介绍与泛型链表
一、泛型的优点泛型是C#中相当重要的一部分,泛型有如下几个突出的有点:1、性能。泛型的主要的一个优点就是性能,在实际项目中经常会遇到装箱和拆箱,尤其是在遍历的时候,频繁的装箱和拆箱会造成很大的性能损失,而泛型在泛型定义的时候就需要指定数据类型,在JIT编译器动态生成的类型中不再需要装箱和拆箱,如定义List<int>2、类型安全。在泛型类中泛型类型T定义了允许使用的类型,如...原创 2019-05-20 23:15:07 · 921 阅读 · 0 评论 -
C#泛型基础(二)之泛型类型约束
泛型虽然在实例化时可以指定为任意类型,但是实际业务中,并不是都需要这样,更多的时候因为业务逻辑而需要添加一些约束。泛型添加约束使用where子句,如List<T> where T:class表示T只能是引用类型。下文将展示泛型约束的基本用法与基本概念。一、约束类型约束类型有六种,分别是class,struct,基类,接口,new(),unmanaged,其中unmanaged在...原创 2019-05-21 22:36:00 · 3339 阅读 · 0 评论
分享