随笔分类 -  c#

1 2 下一页
c#语法和api使用经验汇总
关于GC和析构函数的一个趣题
摘要:这个有趣的问题感谢装配脑袋友情提供。请看如下代码: public class Dummy { public static Dummy Instance; public int X = 1; ~Dummy() { ... 阅读全文
posted @ 2014-12-28 23:45 JeffWong 阅读(2926) 评论(1) 推荐(10) 编辑
记录个人一直以来对枚举定义和使用的两个误解
摘要:1、枚举定义声明基础类型的限制想要定义一个表示数据库主键编号范围的枚举: /// /// 编号范围枚举 /// public enum IDRangeType : Int64 { /// /// 1到2的32次方 /// ... 阅读全文
posted @ 2014-06-25 20:39 JeffWong 阅读(2591) 评论(7) 推荐(2) 编辑
泛型实现中没有正确lock引用类型的一个隐藏bug分析
摘要:最近看到这篇文章dotNetDR_的回复,让我想起一个真实发生的案例,下面就简单说说这个关于lock引用类型的一个不容易发现的隐藏缺陷。某类库中的代码,封装了很简单的一个通用类,用于线程安全地执行某一种类型的特定方法,几行代码搞定: public class ConcurrentObjectE... 阅读全文
posted @ 2014-05-22 21:56 JeffWong 阅读(1756) 评论(3) 推荐(3) 编辑
从源码分析常见的基于Array的数据结构动态扩容机制
摘要:本文的写作冲动来源于今晚看到的老赵的一则微博“大家知道System.Collections.Generic.List<T>是一种什么样的数据结构?内部的元素是怎么存放的?还有Dictionary<TKey,TValue>呢?…”。 查了一下书,如果参考数据结构和算法里介绍的线性表和哈希表的特点,非常 阅读全文
posted @ 2012-11-06 22:03 JeffWong 阅读(1422) 评论(3) 推荐(5) 编辑
又一次遭遇“xxx类型初始值设定项引发异常”
摘要:下了个c#实现的轻量级IoC开源项目,可是在本地使用时发现一运行就捕捉到“类型初始值设定项引发异常”的异常信息,调试几次还是不能确定到底什么地方出了问题。印象中好像碰到过这种异常,初步估计是某个静态类初始化不成功引起的,但是不能肯定。无奈打开ILSpy查看源码,发现静态初始化的地方非常多,而且代码看上去层层嵌套,类名繁多,一行一行跟上去很容易绕晕。折腾好久未果,无奈google一下,发现早就有人和我碰到一样的问题,一看投票最多的正确解决方法差点没把自己搞疯:项目中直接添加log4net.dll引用即可。经试验,果然。啊啊啊啊啊啊啊啊啊啊啊啊啊…原来是log4net,竟然又是log4net。根据 阅读全文
posted @ 2012-02-14 22:09 JeffWong 阅读(10469) 评论(0) 推荐(0) 编辑
JavaScript和C#通用gb2312和utf8编码解码函数简单实现
摘要:1、javascript实现gb2312编码解码随便看到一段话如下:“老赵的jscex https://github.com/JeffreyZhao/jscex/blob/master/README-cn.md 曲线助赵拿WP7,哇哈哈”老赵你可能已经如雷贯耳了,但没听说过或者还不懂什么是jscex,不知道有什么人已经在使用它讨论它,或者不知道它能做出什么效果出来……充满求知欲望的你习惯性地打开浏览器进行搜索,这时候客户端应该选择什么方式的编码传参呢?我们知道,javascript默认编码函数有三种,即escape,encodeURI和encodeURIComponent(可参考这一篇),其中 阅读全文
posted @ 2011-12-24 18:18 JeffWong 阅读(21632) 评论(0) 推荐(0) 编辑
利用FastReflectionLib快速实现对象克隆
摘要:一、两个相同类型对象属性快速赋值(快速实现对象克隆)有时候我们会构造一个实例a并赋值,然后new一个对象b并将a对象的属性完全赋值给b(不完全是所谓的深克隆?)。这个功能是开发中比较常用的,我记得几年前学.net remoting编程的时候写了很多代码实现过类似的转换。实现这种对象克隆的最简单的方法... 阅读全文
posted @ 2011-08-25 20:41 JeffWong 阅读(1905) 评论(6) 推荐(0) 编辑
“简单证明GUID(全局唯一标识符)并不唯一”
摘要:GUID是什么,大家理所当然地应该都知道(百度百科介绍的GUID)。在.net framework中,微软为开发者提供了一个GUID结构,这个结构想必很多人在开发中应该已经用过,下面我们再来看一下它的备注说明:“GUID 是一个 128 位整数(16 字节),可用于所有需要唯一标识符的计算机和网络。此标识符重复的可能性非常小。”注意红色的标注,标识符是有重复的可能的,只不过重复的概率小之又小。到这里你我可能都会产生疑问,重复的可能性到底有多小呢?如何证明有重复呢?在stackoverflow上,一个善于思考勇于发现并提出问题挑战权威的C#开发先驱抛出了一个有趣的问答题:“Simple proo 阅读全文
posted @ 2011-05-02 16:11 JeffWong 阅读(50798) 评论(28) 推荐(13) 编辑
c#执行定时计算限制操作(计时器)
摘要:在.Net Framework Class Library(FCL)中,System.Threading命名空间下定义了一个Timer类,这就是常用的一个计时器。实际上FCL总共提供了如下几种计时器:1、System.Threading.Timer在实际的开发中,这个类出现和使用频率非常高,下面就重点谈谈它的一些基础概念和应用实例。(1)、常用的构造器参数说明:a、callback:望文生意,肯定... 阅读全文
posted @ 2010-11-15 18:07 JeffWong 阅读(5994) 评论(1) 推荐(0) 编辑
浅谈c#泛型类型变量作为操作数使用的通用解决方法
摘要:问题来源:在c#编程中,经常会对一些数字型基元类型如Int16,Int32,Int64,Decimal等,做一些加减乘除的事情。比如我们经常写出下面的方法,用来计算从0开始到输入的32位整数之间数字的总和(没有考虑溢出等特殊情况): internal static Int32 Sum(int nu... 阅读全文
posted @ 2010-11-08 20:37 JeffWong 阅读(9849) 评论(4) 推荐(1) 编辑
一个不常用但非常有用的预处理指令:#pragma warning
摘要:平时团队开发中,每次通过版本控制软件获取最新版本项目文件并编译后,VS的错误列表总会有如下形式的提示:虽然项目编译通过,而且运行正常,但是每次看到不同项目中几个乃至几十个上百个的警告都非常不爽。楼猪是个有点代码洁癖的人,如果当时项目不是很紧,自己精力和时间都很充沛,也会将自己的完美主义倾向进行到底,忍不住非常大胆地重构别人项目中的代码,但是有时候发现出现这种警告也是其他开发者的一种“缓... 阅读全文
posted @ 2010-09-23 17:14 JeffWong 阅读(1066) 评论(1) 推荐(0) 编辑
Func和Action委托的区别和简单使用
摘要:前言:下面几条都是根据自己开发经验和网上资料整理总结的,初学者可适当入门学习,加深印象,高手请54.Func和Action委托的区别和简单使用1、两种委托的常见形式和区别(1)、Func委托有5个重载形式,区别仅在于它所指向的方法的签名的参数个数,分别如下:Func<TResult> Func<T,TResult> Func<T1,T2,TResult> unc... 阅读全文
posted @ 2010-04-08 21:21 JeffWong 阅读(10243) 评论(1) 推荐(4) 编辑
c#直接调用ssis包实现Sql Server的数据导入功能
摘要:调用ssis包实现Sql Server的数据导入功能网上已经有很多人讨论过,自己参考后也动手实现了一下,上一次笔者的项目中还用了一下这个功能。思前想后,决定还是贴一下增强记忆,高手请54.1、直接调用ssis包,需要引用Microsoft.SqlServer.DTSRuntimeWrap.dll,客户端需要安装MS SQL Server2005的客户端组件。2、调用代码代码 Code highli... 阅读全文
posted @ 2009-12-17 13:03 JeffWong 阅读(2703) 评论(3) 推荐(0) 编辑
c#实现根据有规律的文件内容解析成实体类
摘要:标题太难起了。这个功能的由来就是有的时候我们会根据外部的文件,将文件中的数据按要求导入到数据库中。在本人最近几个月的工作中至少碰到三次了(一次xml文件,一次文本文件,这一次是csv格式的),xml文件的操作比较容易(您可以参考笔者之前的这一篇),对于txt或者csv等格式的文件觉得有必要写一个通用的方法,实现文件内容的快速有效的解析。下面记录一下这个方法,您可以根据自己的需要适当修改成自己想要的... 阅读全文
posted @ 2009-12-12 18:50 JeffWong 阅读(1074) 评论(2) 推荐(1) 编辑
c#泛型作为返回类型的写法
摘要:没有技术含量,已经知道的就直接无视了吧。我的本意是要将一个实体参数转换为泛型对象T返回,所以初次代码就写成下面这样:代码 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--publicstaticTGetObj<T>(Employeemode... 阅读全文
posted @ 2009-12-05 14:05 JeffWong 阅读(13880) 评论(4) 推荐(1) 编辑
c#匿名方法的一个注意点
摘要:在看Artech的博客时发现他的这篇难道调用ThreadPool.QueueUserWorkItem()的时候,真是必须调用Thread.Sleep(N)吗? 讲到的一个匿名方法造成的问题,在文章后面,有老赵的回复,并且给出了解决方案(查看老赵的“警惕匿名方法造成的变量共享”)。其实不止匿名方法有这个困扰,我们在操作集合的时候,都应该全面考虑到”变量共享R... 阅读全文
posted @ 2009-12-05 12:36 JeffWong 阅读(689) 评论(2) 推荐(0) 编辑
c#简单实现提取网页内容
摘要:下面的代码是从一个网络爬虫程序中提取出来的,觉得有用,记录下来。代码 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--usingSystem;usingSystem.Collections;usingSystem.Collections.Generic... 阅读全文
posted @ 2009-11-29 13:00 JeffWong 阅读(1344) 评论(0) 推荐(1) 编辑
c#简单实现生成csv文件
摘要:最近项目中用到Sql Server的DtS数据导入功能。其中dtsx模板的制作和csv的生成是重中之中。在这方面,自己完全是个菜鸟,尤其是dtsx,那玩意让我栽了很多次,幸亏在同事的热心帮助下最终让我得偿所愿,哈哈,真不容易。好了,闲言少叙,下面就记录下自己实现的一个简单的生成csv文件的方式。代码如下:[代码]需要说明的是:1、生成csv的时候,我们没有考虑实体类和数据库字段的顺序,只是通过反射... 阅读全文
posted @ 2009-11-26 20:02 JeffWong 阅读(18147) 评论(6) 推荐(1) 编辑
c#通过反射获取类上的自定义特性
摘要:下面这个是笔者在以前的一个项目中用到的。当时是为了在导出excel报表的时侯,通过自定义特性,包含一些可配置的特性在里面。具体的操作excel不是本文重点,本文不会多做说明。下面只写个示例,简单说明一下如何通过反射获取自定义特性。示例只在类和属性上使用了自定义特性。读者可以按照实际的项目需求,合理使用自定义特性。1、实现实体自定义特性,继承自Attribute类[代码]注释中我已经写的很清楚,自定... 阅读全文
posted @ 2009-11-18 22:41 JeffWong 阅读(17346) 评论(0) 推荐(5) 编辑
c#3.0关于JSON简单操作的实用帮助类(泛型实现)
摘要:关于json的操作,网上一搜一大把。避免重复造轮子,整理发布一个笔者在项目开发中经常用到的一个json实用帮助类,泛型实现,非常方便。不废话了,贴代码:1、json操作的帮助类:[代码]ps:需要添加System.ServiceModel.Web和System.Runtime.Serialization两个引用。ps1:对时间、DataTable等特殊类型没有单独列出处理。2、在页面中的调用方式如... 阅读全文
posted @ 2009-10-14 15:02 JeffWong 阅读(2135) 评论(2) 推荐(0) 编辑

1 2 下一页