摘要:
异步:异步操作通常用于执行完成时间可能较长的任务,如打开大文件、连接远程计算机或查询数据库=异步操作在主应用程序线程以外的线程中执行。应用程序调用方法异步执行某个操作时,应用程序可在异步方法执行其任务时继续执行。 异步与多线程的关系:我们已经知道, 异步和多线程并不是一个同等关系,异步是最终目的,多 阅读全文
摘要:
本文参考书籍《CLR via C#》 一些常见的编程情形呢都可以通过任务来提升性能,为了简化编程,静态System.Threading.Tasks.Parallel封装了这些静态方法,其实它的内部仍然使用了Task对象,只是一些便捷编程的语法糖,但是十分好用。 比如常见的循环: for(Int32 阅读全文
摘要:
本文参考书籍《CLR via C#》 Task的取消采用一种形如令牌(Token)的方式。首先先构建一个CancellationTokenSource实例,然后任务中执行的方法必须能接受一个CancellationToken类型的参数。 假设我们有这样一个方法: 上述代码中的循环中调用Cancell 阅读全文
摘要:
泛型是CLR和编程语言提供的一种特殊机制,它可以支持代码重用。 我们在编写程序的时候,经常会遇到两个模块的功能非常相似,只是一个处理int类型的数据一个处理string数据,或者其他自定义的数据类型,而c#中的类型是强类型,我们不得不写多个方法分别处理不同的带护具类型,那么有没有一种办法,在方法中传 阅读全文
摘要:
模式匹配(模范匹配):子串在主串中的定位称为模式匹配或串匹配(字符串匹配) 。模式匹配成功是指在主串S中能够找到模式串T,否则,称模式串T在主串S中不存在。 以下介绍两种常见的模式匹配算法: 算法的核心思想如下: 设S为目标串,T为模式串,且不妨设: S=“s0s1s2…sn-1” , T=“t0t 阅读全文
摘要:
串的基本概念: 串(字符串):是零个或多个字符组成的有限序列。记作: S=“a1a2a3…”,其中S是串名,ai(1≦i≦n)是单个,可以是字母、数字或其它字符。 串值:双引号括起来的字符序列是串值。 串长:串中所包含的字符个数称为该串的长度。 空串(空的字符串):长度为零的串称为空串,它不包含任何 阅读全文
摘要:
在C#中新创建一个对象都用 new 操作符来创建,以下是 new 操作符做的事情: new 执行了所有这些操作之后,返回指向新建对象的一个应用。 CLR的重要特性之一就是类型安全,所以一个类型不可能伪装为另一个类型,但是CLR允许将对象转换为它的实际类型或者她的任何基类型。c#不要求任何特殊语法即可 阅读全文
摘要:
雾 悲性的蔓延 行走在雾里 犹如灶台上烟气里的灰尘 飘忽不定 我想也许是自己聋了吧 雾气里只听得到 自己的心跳 那般局促不安 我想也许是自己瞎了吧 看到雾气里胡乱堆放的石子 看到雾气里抖动翅膀里丑陋的山雀 却独独看不到自己 也许我也像山雀那般丑陋吧 这肮脏的雾气 弄脏了我朝圣的新衣 疯狂的奔跑 试图 阅读全文
摘要:
栈和队列是两种应用非常广泛的数据结构,它们都来自线性表数据结构,都是“操作受限”的线性表。 栈的概念 栈(Stack):是限制在表的一端进行插入和删除操作的线性表。又称为后进先出LIFO (Last In First Out)或先进后出FILO (First In Last Out)线性表。 栈顶( 阅读全文
摘要:
线性结构是最常用、最简单的一种数据结构。而线性表是一种典型的线性结构。其基本特点是线性表中的数据元素是有序且是有限的。在这种结构中: 存在一个唯一的被称为“第一个”的数据元素; 存在一个唯一的被称为“最后一个”的数据元素; 除第一个元素外,每个元素均有唯一一个直接前驱; 除最后一个元素外,每个元素均 阅读全文