可空值类型装箱拆箱
摘要:诡异的可空值类型装箱拆箱上一篇学习笔记1中我为了处理可空值类型使用了一个方法public virtual bool TryParseInt32(bool nullable, string str, out object value){ Int32 v; if (Int32.TryParse(str, out v)) { value = nullable ? (object)new Nullable(v) : v; return true; } else { value = null; return fa...
阅读全文
StreamWriter(ms, new UTF8Encoding(false))可以达到不输出BOM的需求。
摘要:winform 通过webservice向服务器提交图片需要注意的地方最近一个winform项目中需要通过拍照或者上传本地文件或者截图的方式把产品图片上传到服务器,最后选择了服务器部署webservice的方式来进行。其中遇到了一些问题记录下来。不多说,直接上服务端代码?[WebMethod(Description = "上传文件")]publicboolUploadFiles(stringfilename, byte[] content){try{intindex = filename.LastIndexOf(".");if(index == 0){r
阅读全文
C# 从Excel2003将数据导入到SQL2005,数据发生截断的问题分析
摘要:C# 从Excel2003将数据导入到SQL2005,数据发生截断的问题分析问题描述:大家没有遇到过这种情况使用自己编写的工具读取Excel2003文件中的数据,然后执行插入语句将数据批量导入到SQL2005.一定有人遇到过数据截断的情况,大多数的原因是因为,数据库中的字段设置的太小导致的,只要稍微修改下就能解决。但是下面的情况发生的原因是在读取Excel2003文件中的数据式,发生的读取数据截断,这种情况该怎么解决呢?首先屡一下导入数据的思路,将Excel2003加载到DataTable,或者你直接使用DataReader一行一行的从Excel2003问价中读取,读取一条插入一条然后直接你的
阅读全文
GDI+简单现实文字旋转
摘要:GDI+简单现实文字旋转题记 入职新公司已快有两月了,试用期已快结束,项目却迟迟还未正式启动。安排给我的多是些琐事,一直未进入工作状态。公司也不在本地,我是属于公司在现场招的,工作地点就在客户这边。刚来时还有其他几个到这边出差的同事,有专门过来带我熟悉业务的,但呆了一个月陆陆续续都回公司去了。现目前就我和另一个在这边上学的研三的实习生同事,没有人管着又没多少事可做,着实闲得有点蛋疼。 一闲下来时间似乎就停滞了,博客园不知道刷新了多少次,可电脑右下角的时间距离下班还是那么长。浏览器关了又打开,重复了N多次,一遍一遍的F5多么期待能够出现一篇耳目一新的博文,能够把我的游离灵魂带走,忘记那等待的..
阅读全文
MEF搜索范围
摘要:实战MEF(4):搜索范围在前面的文章中,几乎每个示例我们都会接触到扩展类的搜索位置,我们也不妨想一下,既然是自动扩展,它肯定会有一个或者多人可供查找的位置,不然MEF框架怎么知道哪里有扩展组件呢?就像我们用导航系统去查找某个地方的所有旅店一样,正因为在该地的旅店已在数据库中注册了相关信息,我们的导航系统才能查找到它,如果某家旅店没有向导航数据库提供任何数据,那很显然导航系统是无法识别到它的详细地址的。MEF对扩展组件的查找范围通常有三个:AssemblyCatalog:从某个程序集中查找。ApplicationCatalog:在应用程序所在的目录下查找。DirectoryCatalog:在某
阅读全文
性能问题在于你想不到的任何地方
摘要:性能问题在于你想不到的任何地方!今天在做blqw.Json反序列化的优化工作的时候发现一个问题,在反序列化一个非常简单的对象public class SimpleObject{ public static SimpleObject New() { return new SimpleObject { Scores = new int[]{1,2,3,4,5,6,7,8,9,0} }; } public int[] Scores { get; set; }}在性能上我居然和想象中的相差非常大,看结果我第一时间想...
阅读全文
可拖拽的ListBox
摘要:可拖拽的ListBox 之前在写播放器的时候,遇到了一个问题,现在播放器无论是千千,KuGoo还是比较原始的MediaPlayer,它们的播放表都是可以拖拽的,直接把文件拖到播放表实现歌曲的添加那个先暂且不说,光是播放表里面的歌曲次序也可以通过拖拽来调整。但是VS提供的ListBox没能直接通过设定某个属性实现这个拖拽排序,于是俺就开始了实现这功能的探索,无意中还找到了ListBox与ListBox之间元素的拖拽,于是一并实现了,遂述此文以记之。 其实无论是ListBox里的拖拽排序,还是ListBox间的拖动,都是通过三个事件来实现的:DragDrop,DragOver和MouseDow..
阅读全文
WinForm控件选择器
摘要:WinForm控件选择器jQuery和Css的控件选择器用起来非常畅快,相信用过的人都会有这种感觉,而WinForm则是通过Name来实现窗体中控件的选择,在选择单个控件的时候是很方便,但是当选择具有一类特征的控件时,则显得有些乏力。于是我仿照jQuery和Css来实现了一个WInForm的控件选择器,而且是用扩展方法实现,这样只需要添加一个命名空间就可以方便的使用了。下面是实现的源码及一些简单的示例代码。 1 /// 2 /// WinForm控件选择器 3 /// 4 public static class Selector 5 { 6 ...
阅读全文
C#实战Microsoft Messaging Queue(MSMQ)
摘要:C#实战Microsoft Messaging Queue(MSMQ)消息队列(干货)前言 在使用MSMQ之前,我们需要自行安装消息队列组件!(具体安装方法大家自己搜一下吧) 采用MSMQ带来的好处是:由于是异步通信,无论是发送方还是接收方都不用等待对方返回成功消息,就可以执行余下的代码,因而大大地提高了事物处理的能力;当信息传送过程中,信息发送机制具有一定功能的故障恢复能力;MSMQ的消息传递机制使得消息通信的双方具有不同的物理平台成为可能。 在微软的.net平台上利用其提供的MSMQ功能,可以轻松创建或者删除消息队列、发送或者接收消息、甚至于对消息队列进行管理 MS...
阅读全文
字典序列化
摘要:字典序列化一.我们的需求你是否和我一样有如下的困扰:你需要将一个类转换为XML或JSON存储或传输,但总有你不想存储或想特殊处理的字段,用序列化器自身的反射功能就看起来颇为鸡肋了。与MongoDB等键值对数据库做交互,很多ORM框架都无效了,如何写一个通用的数据接口层?而且不用去添加丑陋的"MongoIgnore"这样的attribute?你要将一个对象的属性“拷贝”到另外一个对象,怎么做?C语言的拷贝构造函数?那太原始了。界面绑定:总有一些绑定表达式,想通过动态的形式提交给框架,而不是写死在xaml里,那是否又得在C#里写一堆对象映射的代码了? 大家肯定都遇到过和我相似的
阅读全文
根据字典和指定长度,按排列组合生成字符串(七个方案)
摘要:根据字典和指定长度,按排列组合生成字符串(七个方案)命题根据指定的字符集合(字典),按排列组合的规则(允许重复),生成指定长度的所有字符串。如下代码:class Program{ static void Main(string[] args) { string dic = "abcdef"; int len = 3; int top_last_N = 5; IGenerator g = new Generator1(); var result = g.Generate(dic, len) ?? new List(...
阅读全文
委托的那些事
摘要:委托的那些事什么是委托?之前写了事件和委托的区别:http://www.cnblogs.com/wolf-sun/p/3293146.html这里也把委托相关知识也总结一下。委托是c#中类型安全的,可以订阅一个或多个具有相同签名方法的函数指针声明委托的方式:delegate 返回值类型 委托类型名(参数)比如delegate void StringProcess(string s);注意这里的除了前面的delegate,剩下部分和声明一个函数一样,但是StringProcess不是函数名,而是委托类型名声明的委托是一种类型,就像int、Person一样,如果要用的话还要声明委托类型的变量,声明
阅读全文
核心C#
摘要:核心C#内容提要:声明变量;变量的初始化和作用域;C#的预定义数据类型;在C#程序中使用条件语句、循环和跳转语句指定执行流;枚举;名称空间;Main()方法;基本命令行C#编译器选项;使用System.Console执行控制台I/O;使用内部注释和文档编制功能;预处理指令;C#编程的推荐规则和约定。一、第一个C#程序Q:如何利用c#命令行编译器(csc.exe)编译一个程序?A:css ClassName.cs (Tool :Visual studio 2010 Command Prompt)Q:C# 区分大小写的吗?A:C#区分大小写的。提示:对于控制台应用程序、Windows应用程序都有一
阅读全文
.NET开发邮件发送功能
摘要:.NET开发邮件发送功能今天,给大家分享的是如何在.NET平台中开发“邮件发送”功能。在网上搜的到的各种资料一般都介绍的比较简单,那今天我想比较细的整理介绍下:1)邮件基础理论知识2)邮件发送相关.NET类库3)介绍我开发的一个发送邮件的小组件(MailHelper)4)MailHelper组件的一个示例以及几种方式发邮件的优劣测试示例及组件源码:.NET开发邮件发送功能的全面教程(含邮件组件源码).rar邮件基础理论知识什么业务需要邮件功能?服务提供方:需提供邮件收发客户端或Web服务。(eg:Outlook、QQ邮箱)。当然这些服务都是知名商提供。若是一般的小网站提供的邮件收发服务,不知道
阅读全文
我眼中的事件委托
摘要:我眼中的事件委托上一篇博文写了委托,总想知道委托的使用场景。网上查出事件委托、回调函数等。今天我也写写对事件委托的认知,常思考并总结,对自己总是有好处的,能让知识更加系统完善。人无完人,虽然我也很怕引来大家的一堆谩骂声,但是我也想招来一群志同道合的友人。就像三国的曹操,有人谩骂,有人赞扬,有人示之为敌人,有人示之为我主。好拉,不写点费话,总觉得缺少什么。下面谈谈事件委托,这是一对词组,拆分为事件(关键字event)、委托(关键字delegate)网上看一位博友总结委托与事件的作用,而且对于事件委托的阐述也很棒。委托的作用: 占位,在不知道将来要执行的方法的具体代码时,可以先用一个委托变量来代替
阅读全文
C#语言基础
摘要:C#语言基础 一、HelloWorld 我们先来看看最简单的C#代码——HelloWorld: 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace DailyCSHARP20130829 8 { 9 class HelloWorld10 {11 public static void Main()12 {13 ...
阅读全文
身份证号码验证算法
摘要:身份证号码验证算法做项目的时候需要对拿到的数据进行“清洗”,比如剔除一些不可能存在的身份证号码。查阅了网上的身份证号码验证算法,自己也总结一下。(一)18身份证号码的结构 公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。 排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位校验码。1、地址码 表示编码对象常住户口所在县(市、旗、区)的行政区域划分代码,按GB/T2260的规定执行。2、出生日期码 表示编码对象出生的年、月、日,按GB/T7408的规定执行,年、月、日代码之间不用分隔符。3、顺序码 表示在同一地址码所标识的区域范围内,对同年、同...
阅读全文
基于 WebSocket 构建跨浏览器的实时应用
摘要:Socket.IO – 基于 WebSocket 构建跨浏览器的实时应用Socket.IO 是一个功能非常强大的框架,能够帮助你构建基于 WebSocket 的跨浏览器的实时应用。支持主流浏览器,多种平台,多种传输模式,还可以集合 Exppress 框架构建各种功能复杂的实时应用。您可能感兴趣的相关文章Chance – 功能强大的 JavaScript 随机数生成类库Manifesto – HTML5 离线应用程序缓存校验工具Codrops 教程:基于 CSS3 的全屏网页过渡特效Zoom.js:一款效果非常独特的页面内容缩放插件Popline:很特别的浮动 HTML5 文本编辑器工具栏使用示
阅读全文
string中Insert与Format效率对比、String与List中Contains与IndexOf的效率对比
摘要:string中Insert与Format效率对比、String与List中Contains与IndexOf的效率对比string中Insert与Format效率对比、String与List中Contains与IndexOf的效率对比 关于string的效率,众所周知的恐怕是“+”和StringBuilder了,这些本文就不在赘述了。关于本文,请先回答以下问题(假设都是基于多次循环反复调用的情况下):1.使用Insert与Format方法,哪个效率更高?2.Contains(value)与IndexOf(value)谁效率更高?假如您对此2问不感兴趣或已非常了解,请忽略此文。另外本文将不对文中.
阅读全文
Devexpress XtraReports 交叉报表
摘要:[原创]Devexpress XtraReports 系列 5 创建交叉报表昨天我们已经介绍了如何创建多栏报表,详见:[原创]Devexpress XtraReports 系列 4 创建多栏报表今天我们继续我们的XtraReports系列。Demo和数据库文件最后会附上。今天的主题是:创建交叉报表什么是交叉报表呢?官方回答:交叉表报表是以交叉表形式呈现信息的报表。 交叉表 (或透视表) 类似于简单的普通数据绑定表格,但是改为在单个表格中呈现多维的分层级的信息,并含有每行和每列的自动排序、计数、合计和累计。依照惯例,我们先来看看我们最后实现的效果,如图:案例场景:某公司可能有产品1-12,分别属
阅读全文