摘要: 本章要点 自定义特性 反射 自定义特性运行把自定义元数据与程序元素关联起来。这些元数据时再编译过程中创建的并嵌入到程序集中。 反射是计算机术语,它描述在运行过程中检查和处理程序元素的功能。 反射允许完成以下任务: 枚举类型的成员 实例化新对象 执行对象的成员 查找类型的信息 查找程序集的信息 检查应 阅读全文
posted @ 2016-09-27 09:29 笨重的石头 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 本章要点 运行库在栈和堆上分配空间 垃圾回收 使用析构函数 和 SYstem.IDisposable 接口来释放非托管的资源 C#中使用指针的语法 使用指针实现基于栈的高性能数组 值类型数据 程序第一次开始运行时,栈指针指向为栈保留的内存块末尾。栈实际是从高内存地址向低内存地址填充的,向下填充。当数 阅读全文
posted @ 2016-09-19 22:12 笨重的石头 阅读(1098) 评论(0) 推荐(0) 编辑
摘要: 异步编程重要性 C# 5.0 提供了更强大的异步编程。添加两个新的关键字 async 和 await 。 使用异步编程,方法调用是在后台运行(通常在线程或任务的帮助下),并且不会阻塞调用线程。 3种不同模式的异步编程:异步模式、基于事件的异步模式 和 新增加的基于任务的异步模式(TAP)。TAP 是 阅读全文
posted @ 2016-09-17 22:46 笨重的石头 阅读(442) 评论(0) 推荐(0) 编辑
摘要: 在 C# 4 开始添加 dynamic 类型。Mono C# 已经支持 C# 6.0 了。 DLR C# 4 动态功能是 Dynamic Language Runtime (动态语言运行时,DLR)的一部分。DLR 是添加到CLR的 一系列服务,它允许添加动态语言,如 Ruby 和 Python,并 阅读全文
posted @ 2016-09-13 20:55 笨重的石头 阅读(1323) 评论(0) 推荐(0) 编辑
摘要: LINQ 查询 扩展方法 LINQ为IEnumerable<T>接口提供各种扩展方法,以便用户实现了该接口的任意集合上使用LINQ查询。扩展方法在静态类中声明,定义一个静态方法,第一参数定义扩展的类型。 扩展方法可以将方法写入最初没有提供该方法的类中,可以把方法添加到实现某个特定接口的任何类中,这样 阅读全文
posted @ 2016-09-09 13:42 笨重的石头 阅读(8994) 评论(0) 推荐(0) 编辑
摘要: 由于大量的工作程序的复杂度越来越高,需要更多的时间去花很多的时间去调试,所以我们更需要去深思。 少既是多 细节的关注甚至是关键的专业性基础。首先开发者通过小型实践获得可用于大型实践的技能和信用度。如。宏大建筑中最细小的部分,如关不紧门、没有铺平的地板,甚至是凌乱的桌面。都会将整个的大局毁灭殆尽。 5 阅读全文
posted @ 2016-09-04 12:57 笨重的石头 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 数组的大小是固定的。如果元素个数动态,就使用集合类。 List<T>是与数组相当的集合类。其他的集合:队列、栈、链表、字典和集。 .NET Framework 1.0 包括非泛型集合类,如 ArrayList 和 HashTable 。 创建List 使用默认构造函数创建一个空列表。如果列表添加元素 阅读全文
posted @ 2016-08-24 11:58 笨重的石头 阅读(671) 评论(0) 推荐(0) 编辑
摘要: String类 PadLeft、PadRight 输出 上面这段代码本身功能很简单,但它如果执行 大量的替换 的操作,如果执行次数越多,性能就越低。 为解决这个这个问题用 StringBuilder。 StringBuidler仅可以替换和追加或删除字符问题。虽然方法少,但它工作方式高效。 Stri 阅读全文
posted @ 2016-08-23 16:01 笨重的石头 阅读(501) 评论(0) 推荐(0) 编辑
摘要: 引用方法 在C++,函数指针只不过是一个指向内存位置的指针,它不是类型安全的。 C# 委托 定义了返回类型和参数的类型。委托类包含对方法的引用,还可以包含多个方法引用。 定义委托 委托派生自 System.MulticastDelegate,而 System.MulticastDelegate 又派 阅读全文
posted @ 2016-08-23 12:52 笨重的石头 阅读(1208) 评论(0) 推荐(0) 编辑
摘要: C#支持的运算符 https://msdn.microsoft.com/zh-cn/library/6a71f45d(v=vs.140).aspx checked 和 unchecked byte数据类型 范围 0~255。递增 b 的值会导致溢出。CLR如何处理这个溢出取决于很多因素,包括编译器选 阅读全文
posted @ 2016-08-19 13:40 笨重的石头 阅读(2679) 评论(0) 推荐(0) 编辑