随笔分类 - DotNet
C#、IIS、VS等
摘要:1、背景知识 (1)接口 INotifyCompletion public interface INotifyCompletion { void OnCompleted(Action continuation); } View Code 实现这个接口的实例(例如一个 Task 对象),在任务完成后,
阅读全文
摘要:一、概述 1、在 C# 中,协变和逆变能够实现数组类型、委托类型和泛型类型参数的隐式引用转换。 2、按字面,可以这样理解:协变,感觉协和地隐式引用转换;逆变,逆反直觉地隐式引用转换。 二、泛型中的协变和逆变 1、定义 (1)协变,使你能够使用比原始指定的类型派生程度更大的类型。你可以将 IEnume
阅读全文
摘要:C#中 IAsyncEnumerable 与 IAsyncEnumerator 的使用 1.支持异步的迭代器 是实现了接口 IAsyncEnumerator 的实例。它提供了一种异步方式以获取集合的下一个元素,进而允许“实现它的类或结构”可以异步地访问集合,并返回集合的元素。 接口 IAsyncEn
阅读全文
摘要:来源 C# 中 == 和 .Equals() 之间的区别 概述 在本文中,您将了解C# 中 == 和 .Equals() 之间的区别。== 和 .Equals() 既用于两个值类型数据项的比较,也用于两个引用类型数据项的比较。本文将解释这两者之间的基本区别。== 比较内容,也比较引用标识,而 .Eq
阅读全文
摘要:C#中关键字 async 和 await 的使用 1. 背景知识点 (1)同步和异步 同步:相同的步速或步调。 在多线程编程中,异步就是:在当前线程之外,另开一个线程,以执行一个相对独立的任务;当前线程不管新开线程是否执行完毕,继续执行自身任务或结束自身。相反地,同步就是:当前线程等待新开线程执行完
阅读全文
摘要:一、设置特定版本属性 二、属性说明 1.“特定版本”这个属性仅在编译时有效,在程序运行时,不发挥作用。 2.编译项目时,需要解析项目的程序集引用,以便找到编译时应使用的物理程序集(.dll文件)。 如果“特定版本”被设置为true,它会影响程序集解析过程,执行如下特定版本信息的检查(假设引用中存在版
阅读全文
摘要:C#中关键字 yield 的使用 1.背景知识点 (1)迭代器 也叫枚举器,是实现了接口 IEnumerator 的实例。它提供了一种方式以获取集合的下一个元素,进而允许“实现它的类或结构”可以遍历集合,并返回集合的元素。 接口 IEnumerable ,用于对外公开一个枚举器。 //枚举器 pub
阅读全文