随笔分类 -  编程开发 - C#

摘要:前不久,在工作中由于默认(xihuan)使用Async、Await关键字受到了很多质问,所以由此引发这篇博文“为什么我们要用Async/Await关键字”,请听下面分解: Async/Await关键字 Visual Studio(.net framework 4.5)提供了异步编程模型,相比之前实现 阅读全文
posted @ 2017-08-24 20:41 史蒂芬King 阅读(24430) 评论(9) 推荐(15) 编辑
摘要:前言 本文中大部分示例代码来自于《CLR via C# Edition3》,并在此之上加以总结和简化,文中只是重点介绍几个比较有共性的问题,对一些细节不会做过深入的讲解。 前几天一直忙着翻译有关内存中堆和栈的问题博文《C#堆vs栈》,正是在写作本文的过程中对有些地方还是产生了很多的Why,所以就先翻 阅读全文
posted @ 2015-04-16 10:16 史蒂芬King 阅读(1257) 评论(14) 推荐(2) 编辑
摘要:前言 本文来聊一聊我们经常会做的空值检查问题,从一个简单的空值检查Any Where,到设计模式的NullObjectPattern,再到C#6.0“可能”会提供的语法,让我们体验一次语言开发上的“持续改进”,Let’s go~ 什么是空引用异常 作为一个敲过代码的码农来说,似乎没有谁没有遇到过Nu 阅读全文
posted @ 2015-04-14 14:01 史蒂芬King 阅读(3540) 评论(45) 推荐(7) 编辑
摘要:前言 在本系列的第一篇文章《C#堆栈对比(Part Three)》中,介绍了值类型和引用类型在Copy上的区别以及如何实现引用类型的克隆以及使用ICloneable接口等内容。 本文为文章的第四部分,主要讲解内存回收原理与注意事项,以及如何提高GC效率等问题。 注:限于本人英文理解能力,以及技术经验 阅读全文
posted @ 2015-04-13 10:14 史蒂芬King 阅读(2166) 评论(9) 推荐(9) 编辑
摘要:前言 在本系列的第一篇文章《C#堆栈对比(Part Two)》中,介绍了值类型和引用类型在参数传递时的不同,本文将讨论如何应用ICloneable接口实现去修复引在堆上的用变量所带来的问题。 本文是系列文章的第三部分。 注:限于本人英文理解能力,以及技术经验,文中如有错误之处,还请各位不吝指出。 目 阅读全文
posted @ 2015-04-12 08:30 史蒂芬King 阅读(1528) 评论(2) 推荐(13) 编辑
摘要:前言 在本系列的第一篇文章《C#堆栈对比(Part One)》中,介绍了堆栈的基本功能和值类型以及引用类型在程序运行时的表现,同时也包含了指针作用的讲解。 本文为文章的第二部分,主要讲解参数在堆栈的作用。 注:限于本人英文理解能力,以及技术经验,文中如有错误之处,还请各位不吝指出。 目录 C#堆栈对 阅读全文
posted @ 2015-04-11 07:26 史蒂芬King 阅读(2126) 评论(21) 推荐(12) 编辑
摘要:前言 本文主要是讲解C#语言在内存中堆、栈的使用情况,使读者能更好的理解值类型、引用类型以及线程栈、托管堆。 首先感谢原文作者:Matthew Cochran 为我们带来了一篇非常好的文章,并配以大量图示,帮助我们更好的理解堆栈之间的调用,本文是在作者原文的基础上进行内容上的精简以及加入我个人在这方 阅读全文
posted @ 2015-04-10 08:25 史蒂芬King 阅读(7570) 评论(22) 推荐(35) 编辑
摘要:前言 在项目中为了方便调试及客户反馈,需要Socket错误数字的中文解释,MSDN上只有英文版,同时也想自己学习而且方便将来更新ErrorCode的实际发生的情景,顾有此博文。 MSDN:https://msdn.microsoft.com/zh-cn/library/ms740668(v=vs.8 阅读全文
posted @ 2015-03-12 19:06 史蒂芬King 阅读(4766) 评论(3) 推荐(1) 编辑
摘要:概述 对于稍微熟悉这两个优秀的项目来说,每个内容单独介绍都不为过,本文只是简介并探讨如何将两部分内容合并起来,使其在某些场景下更适合、更高效。 NetMQ:ZeroMQ的.Net版本,ZeroMQ简单来说就是局域网内的消息中间件(与MSMQ类似),包括了进程间通讯、点对点通讯、订阅模式通讯等等,底层 阅读全文
posted @ 2015-03-10 15:12 史蒂芬King 阅读(4168) 评论(7) 推荐(4) 编辑
摘要:概要 此文来自于最近一个“诡异”的Windows API调用发现Windows Service在调用某些Windows API的过程中失效,在经过漫长的Baidu,之后终于在StackOverFlow上找到了答案,今天希望把这个问题记录下来,方便大家Baidu -。- 需求是什么? 注:PDA一端通 阅读全文
posted @ 2015-03-06 16:08 史蒂芬King 阅读(1141) 评论(1) 推荐(1) 编辑
摘要:今天在看同事新买到的《C#本质论 Edition 4》的时候,对比下以前Edtion3的新特性时针对Async/Await关键字时发现对一些线程方面的定义还理解的不是很透彻,脉络还不是很清晰,这样有了本文,希望对有同样困惑的朋友有些帮助。 文中部分内容摘取自《Essential C# 5.0 Edi 阅读全文
posted @ 2015-01-23 18:54 史蒂芬King 阅读(1703) 评论(0) 推荐(1) 编辑
摘要:概述 上一篇介绍了MEF的一个很简单很基本的应用,实现了MEF框架并展示了MEF框架的一些基本的要求和设置,这些基础知识很重要,接下来我们分析一下如何扩展或增强MEF框架内容。 增强的Contract类库 其实有了上篇的介绍,读者很快会发现,Contract类库制约性很强,或者说“它”只引用了win 阅读全文
posted @ 2014-12-09 11:36 史蒂芬King 阅读(1320) 评论(2) 推荐(0) 编辑
摘要:概述 这篇文章的目的是简要分析对比MAF和MEF,并详细举出MEF设计中的细节和扩展上的细节,达到让读者能实际操作的目的。其中,MAF的设计会附上我的代码,其实就是官方的代码我自己手动联系了一遍,但还是很有收获的,不动手光看是不会体会到细节的;MEF是我着重介绍的,当然也是微软推荐的解决方案,所以这 阅读全文
posted @ 2014-11-28 15:54 史蒂芬King 阅读(2256) 评论(2) 推荐(0) 编辑
摘要:概要 在C#领域或者说.net通信领域中有着众多的解决方案,WCF,HttpRequest,WebAPI,Remoting,socket等技术。这些技术都有着自己擅长的领域,或者被合并或者仍然应用于某些场合。本文主要介绍Socket通讯,因其有着跨平台、跨语言、高性能等优势,适合某些情况的应用以及性 阅读全文
posted @ 2014-11-27 15:13 史蒂芬King 阅读(6645) 评论(13) 推荐(6) 编辑
摘要:最近由于项目上需要对图片进行二值化处理,就学习了相关的图片处理上的知识,从开始的二值化的意义到动态阀值检测二值化等等,并用C#得以应用,学到了很多的知识和大家分享下我个人的经验,希望对大家有帮助。二值化二值化简而言之是对一副彩色图片进行0/1运算,最终显示一副黑白相间的图片,其意义多数在于对二值化处... 阅读全文
posted @ 2014-09-28 19:53 史蒂芬King 阅读(2590) 评论(1) 推荐(1) 编辑
摘要:1. 压缩类型的选择 依据压缩方式的不同,压缩分为有损压缩和无损压缩。其中MP3一类的文件在一定程度的有损压缩下,人的感知不是十分明显而且还是MP3文件的体积相对减小。无损压缩就是类似于Zip,Rar一类的压缩方式,通过字典保存重复值并以一定的坐标映射方式制定对应的值,例如 重复字符串占20位,而映 阅读全文
posted @ 2014-09-26 19:00 史蒂芬King 阅读(1284) 评论(2) 推荐(0) 编辑
摘要:一本好书,或是一本比较有深度的书,就是每次研读的时候都会有新的发现。 好吧,我承认每次读的时候都有泛泛而过的嫌疑~~ 这几年一直专注于C#客户端的开发,逐步从迷迷糊糊,到一知半解,再到自以为是,最后沉下心重新审视。也许这也是一种进步一种自我学习的过程。 前面啰嗦了这么多,希望大家也能不那么浮躁的“深 阅读全文
posted @ 2014-07-25 09:50 史蒂芬King 阅读(1179) 评论(0) 推荐(0) 编辑
摘要:一本好书,或是一本比较有深度的书,就是每次研读的时候都会有新的发现。 好吧,我承认每次读的时候都有泛泛而过的嫌疑~~ 这几年一直专注于C#客户端的开发,逐步从迷迷糊糊,到一知半解,再到自以为是,最后沉下心重新审视。也许这也是一种进步一种自我学习的过程。 前面啰嗦了这么多,希望大家也能不那么浮躁的“深 阅读全文
posted @ 2014-07-24 23:50 史蒂芬King 阅读(1353) 评论(4) 推荐(1) 编辑
摘要:花了好半天才解决这个问题,终于在网上找到了答案,在此记录备份。 参考连接:http://bbs.csdn.net/topics/390150047 自己总结的如下: 结构就不说了,最后大家自己下源码看下就好。 Inner Join: Left outer Join: Note: 1. join in 阅读全文
posted @ 2014-06-30 18:32 史蒂芬King 阅读(874) 评论(0) 推荐(0) 编辑
摘要:DoNet资源 众所周知,.Net内存管理分托管资源和非托管资源,把内存中的对象按照这两种资源划分,然后由GC负责回收托管资源(Managed Resource),而对于非托管资源来讲,就需要程序员手动释放。 Framework的设计者的本意是降低Developer的入门难度,提高开发效率,让使用者 阅读全文
posted @ 2014-05-22 21:44 史蒂芬King 阅读(1535) 评论(4) 推荐(0) 编辑