04 2016 档案
摘要:.net 异步函数 Async await 一旦为函数添加async关键字 该函数就是一个异步函数。 异步方法必须返回 void 或 Task<> 类型。 main() 函数
阅读全文
摘要:1. Task (任务): 很容易调用 ThreadPool.QueueUserWorkItem 实现异步操作,但是这个技术有许多 .net 引入Task类型来使用任务。 如下几种方式都是实现异步的方法: a. 为了创建一个Task,需要调用构造器并传递一个Action 或 Action<Objec
阅读全文
摘要:1. ThreadPool 线程池异步: //public static bool QueueUserWorkItem(WaitCallback callBack); //public static bool QueueUserWorkItem(WaitCallback callBack, obje
阅读全文
摘要:.net 序列化创建对象的深拷贝 序列化可以将多个对象图序列化到一个流中, 在反序列化时按顺序取出即可。 控制序列化反序列化: 有时我们希望类型中有些属性或者字段不被序列化:通过 NonSerialized特性来控制: [NonSerialized] private double m_area; O
阅读全文
摘要:一. 程序集的加载: 在CLR内部使用System.Reflection.Assembly类的静态LoadFrom方法尝试加载程序集。 LoadFrom方法在内部调用Assembly的Load方法,将AssemblyName对象传给它,然后CLR应用版本绑定从定向策略,并在各个位置查询匹配的程序集。
阅读全文
摘要:Lock关键字 C#提供lock关键字实现临界区,MSDN里给出的用法: Object thisLock = new Object();lock (thisLock){ // Critical code section} 还有一种是比lock更“高级”的Monitor:
阅读全文
摘要:1. 不需要构造委托对象 ThreadPool.QueueUserWorkItem:通过线程池 2. 不需要定义回调方法(lambda 表达式): 3. 局部变量不需要手动包装到类中即可传给回调方法。
阅读全文
摘要:lowerBounds {2005,1} 表示 一个二维的 下限 是 2005 跟1 开始, lengths {5,4} 表示 2005 维数增长4个 也就是 2005-2009 , 1 维数增长4个 也就是 1-4 然后通过 Array.CreateInstance 创建二维数组。 如下代码 //
阅读全文
摘要:1. 字符: 在.net中 字符是表示成16为Unicode代码值。每个字符都是System.Char结构(一个值类型)的实例。 使用以下三种技术实现各种值类型与Char实例的互换。 a.转型(强制类型转换) b.使用Convert类型 c.使用IConvertible接口 2. System.St
阅读全文
摘要:1. 下载mongonDB.2. 安装完成后 3. 创建数据目录:(如: C:\ 或者 D:\ 等 ) 在目录下新建一个data目录。用于存放db目录。 C:\MongoDB\data\db 4.命令运行MongoDB 服务器: a. 在cmd命令框中,先指定到MongoDB 的bin 目录下:cd
阅读全文
摘要:通常定义事件 都是通过自定义委托的方式来实现, 今天使用EventHandler 委托来定义事件:
阅读全文
摘要:public class IndexTempte { public ArrayList nameList = new ArrayList(); public string this[int index] { get { return nameList[...
阅读全文
摘要:.net 4.0 引入了 Tuple特性: 在C# 4.0之前我们函数有多个返回值,通常是使用ref,out 。到了c# 4.0 应当使用元组Tuple而不是使用输出参数,在任何时候都应避免使用ref/out传递参数,尤其对引用类型(禁止引用的引用,尝试改进你的设计。 数组合并了相同类型的对象,而元
阅读全文

浙公网安备 33010602011771号