2010年12月31日

摘要: 2010年对我来说是幸运的一年,也是不幸的一年。 先说说不幸 1 这年我从来家来到深圳,出来的第一天,在东莞。被小偷把我钱包偷走。幸运的是钱包最后在地上找到了,钱没了。 2 这年家里出了一些事情,工作辞掉,回家处理事情,花了几个月,烦心的事。 3 工作很不顺利的一年。家庭原因,职业规划的原因, 物价 阅读全文
posted @ 2010-12-31 12:52 gjcn 阅读(410) 评论(0) 推荐(0) 编辑

2010年7月1日

摘要: “二”的主要意思是“蠢、笨、傻”,当然不必用来形容高谈“今年财政收入8万亿,即将成为全球第二”的有关官员。虽然他很可能后悔自己的言论:何必透露这么个消息引得几乎全部媒体的口诛笔伐? 最“二”的显然是“8万亿”这个“成绩”:从百姓中来,却做不到保障民生、造... 阅读全文
posted @ 2010-07-01 16:14 gjcn 阅读(450) 评论(1) 推荐(0) 编辑

2008年12月9日

摘要: 前几天写了一篇文章:CLR系列:浅析泛型的本质,感谢大家的支持,看到一位读者说,泛型已经是2.0的技术,现在都是3.5了,研究他已经没必要,落后了。在这里,我想对大家说,无论是泛型,还是反射,还有今天我要讲的委托都是组成.NET开发的重要技术,什么时候研究都不算晚,都是有必要的。无论什么新的技术都是建立在老技术上面的。只要老的技术了解了,对与新技术也就不算很难了,再说不管过去的2.0,还是现在的3... 阅读全文
posted @ 2008-12-09 11:30 gjcn 阅读(2632) 评论(8) 推荐(0) 编辑

2008年12月1日

摘要: JIT(Just In Time),这是我们通过.net编译器生成的应用程序最终面向机器的编译器,因此大家对JIT了解一下其工作原理还是很有必要的。最近研究了一下,参考了很多文章,也在msdn上查了些资料,以下是最近我对JIT的理解和总结。大家都知道CLR只执行本机的机器代码。目前有两种方式产生本机的机器代码:实时编译(JIT)和预编译方式(产生native image)。下面,我想分析... 阅读全文
posted @ 2008-12-01 16:37 gjcn 阅读(6603) 评论(18) 推荐(3) 编辑

2008年11月25日

摘要: 泛型早在.net2.0就出来了,大家已经对它的使用很熟悉了,在工作中也大量的使用过它,但是大家对其工作原理,以及MS针对泛型对CLR做了那些工作是否了解呢。本文就是对泛型的本质进行讲解,希望能对大家有所帮助。1 引入泛型.Net2.0出来的时候,大家很轰动,其中.NET2.0做的一个很大的改变就是增加了泛型。在1.1的版本,大家还在使用一些如:ArrayList等集合。就算现在是.net3.5的时... 阅读全文
posted @ 2008-11-25 15:48 gjcn 阅读(5166) 评论(34) 推荐(7) 编辑

2008年11月21日

摘要: -前面我们对LINQ的本质,以及MS针对LINQ对3.5新增的几个类做了分析。作为本系列的第一篇:基础与本质的最后一篇,我想对Lambda表达式讲解一下。本来Lambda表达式也可以放到系列c#3.x学习中,我想还是放到LINQ系列比较好讲一些。1 Lambda表达式例子先来熟悉一下Lambda的一般样子,代码:[代码]这些是C#3.0新特性为Lambda定义的格式。Func<int, in... 阅读全文
posted @ 2008-11-21 18:05 gjcn 阅读(2259) 评论(7) 推荐(0) 编辑

2008年11月19日

摘要: 接上文讲,我们在上篇文章里经常提到两个东西(Linq系列:基础与本质(Part I)),System.Linq.Enumerable和System.Func。那么着两个东东到底是个什么东西呢?我们看看下面的代码:LINQ表达式在编译时,编译器会将查询操作符转换为对 System.Linq.Enumerable 类型中若干函数的调用(或者其他类型)。下面是几个Enumerable 成员函数:[代码]... 阅读全文
posted @ 2008-11-19 11:18 gjcn 阅读(2484) 评论(9) 推荐(0) 编辑

2008年11月12日

摘要: 之前写过一些C#3.x新的特性。请参考:C#3.x特性,我们知道这些新的特性基本都是为实现LINQ服务的,在平常的编程中也可以有选择的合理应用,也会有效提高编码效率,实现可读性比较强的简洁代码。在认识这些特性的基础上,理解认识LINQ将变得简单了。1 LINQ简介:LINQ 查询表达式(query expressions )可以使用统一的方式对实现IEnumerable<T>接口的对象... 阅读全文
posted @ 2008-11-12 14:54 gjcn 阅读(3471) 评论(10) 推荐(2) 编辑

2008年10月10日

摘要: CLR系列有些时间没更新了,主要时由于最近一个项目太忙。所以没能更新。以后会继续。其他话就不说了,我们来看看一段代码:[代码]这段代码很简单,大家看看这段代码有什么问题呢? 开始这么一看似乎没什么大的问题。可是仔细分析一下代码你就可以知道其中还是有一些很严重的问题的。假如你对Lock机制有所了解并且对string类型有过研究的话你就会发现出问题:lock 关键字的参数必须为基于引用类型的对象,该对... 阅读全文
posted @ 2008-10-10 14:18 gjcn 阅读(3761) 评论(26) 推荐(0) 编辑

2008年10月8日

摘要: 最近一直在忙,好久没上来看看了,本人在深圳工作,公司在深圳来说也算是比较大的公司。开发人员在200以上,总公司是美国的,干.NET快三年了,别人说程序员3年,5年都是坎,也就是月薪6K,8K的坎,听说迈过去就好了。本人现在只迈过第一个坎,第二个还在努力中。。。前一家公司项目经理在我临走的时候曾经叫我做基础开发再做两年,以后就好办了。我现在也是这么做的。 十一在家没事干,看了看敏捷软件开发。现在,在... 阅读全文
posted @ 2008-10-08 09:16 gjcn 阅读(3202) 评论(19) 推荐(0) 编辑

2008年7月23日

摘要: 园子里有很多人已经对CLR的GC Heap有过激烈的讨论,里面有不少精华文章。但是既然是CLR系列,那么就不得不对GC Heap进行讲解。本文主要是对LOH(Large Object Heap)讲解。在一个托管进程被创建以后,在托管进程的内存空间里面,包含了System Domain,Shared Domain,Default Domain,Process的Heap,JIT Code heap(都... 阅读全文
posted @ 2008-07-23 09:46 gjcn 阅读(2313) 评论(12) 推荐(0) 编辑

2008年7月7日

摘要: 哈希表(Hashtable)简述我想大家对Hashtable很熟悉,平时在工作中使用的也是比较多的,现在都是3.5了,Dictionary 的出现已经可以替代Hashtable,但是我还是想对这个Net框架使用较多的对象(举个例子:Net的CLR处理一个程序集的字符串就是采用HashTable存储在System Domain)讲解一下,因为很多新的技术都是建立在老的技术和思想上的。在.NET Fr... 阅读全文
posted @ 2008-07-07 09:59 gjcn 阅读(3555) 评论(16) 推荐(0) 编辑

2008年4月15日

摘要: 对象初始化器(Object Initializers) 和 集合初始化器(Collection Initializers),就是简化我们的代码,让本来几行才能写完的代码一行写完。这样在LINQ的使用中,我们才不会把一个LINQ表达式写的复杂。 Object InitializersObject Initializer的使用很简单:在通过new 关键字创建对象的时候,将所需的Proeprty置于Ty... 阅读全文
posted @ 2008-04-15 11:21 gjcn 阅读(2660) 评论(8) 推荐(0) 编辑

2008年4月11日

摘要: 我们说在C#3.0中,引入了一些列新的特性,但是个人认为Extension Method这个特性是最爽的,最有创新的。它真正的解决了:在保持现有Type原封不动的情况下对其进行扩展,你可以在对Type的定义不做任何变动的情况下,为之添加所需的方法成员。下面我就来讲讲。C#3.X出来之前大家都知道javascript有个特新Prototype,它就如同C#3.X中的Extension Method。... 阅读全文
posted @ 2008-04-11 13:16 gjcn 阅读(3456) 评论(15) 推荐(0) 编辑

2008年4月10日

摘要: 之前的做法:在c#3.x出来之前,相信大家已经习惯通过一个private field + public property的发式来定义和实现一个public Property。就如下面方式实现。1classperson2{3privateintage;4privatestring_name;5publicintAge6{7get{returnage;}8set{age=value;}9}10publ... 阅读全文
posted @ 2008-04-10 11:06 gjcn 阅读(2657) 评论(14) 推荐(0) 编辑

2008年4月9日

摘要: 我们说Anonymous Type是C# 3.0的新的特性,而没有说Anonymous Type是.NET Framework 3.5的新特性。这是因为Anonymous Type仅仅是.NET Programming Language和相应的Compiler的新引入的特征。而对于.NET Framework 3.5来说,它看不到这和原来有什么不同,对于Anonymous Type和一般的Named Type,对于CLR来说他们之间没有什么本质的区别。通过下面这样的一段简单的代码:1varp1=new{Name="IORI",Age=27};然后我们再看看IL:CodeCode highlig 阅读全文
posted @ 2008-04-09 14:19 gjcn 阅读(2437) 评论(9) 推荐(0) 编辑

2008年3月5日

摘要: 废话就不多讲了,直接看看下面的例子。1)static int Test() { int val = 1; try { return val; } finally { val = 2; } }2)static int s_val; static int Test() { s_val = 1; try { return s_val; } finally { s_val = 2; } }请问这两个例子最... 阅读全文
posted @ 2008-03-05 11:45 gjcn 阅读(2113) 评论(18) 推荐(0) 编辑

2008年3月4日

摘要: ILDASM是个好的工具,平时也很喜欢用,它能帮助我更好的了解NET。以下我的总结,请执教。You write: public enum Compression{ Zip, SuperZip, None } The C# compiler generates: public struct Compression : Enum { public int value__; public cons... 阅读全文
posted @ 2008-03-04 11:36 gjcn 阅读(1734) 评论(7) 推荐(0) 编辑

2007年9月3日

摘要: 由于项目的需要,最近完成了一个支持多语言的系统实现.我用的是App_GlobalResources全局资源文件配置.命名空间是using System.Threadingusing System.Resourcesusing System.Globalizationusing System.Reflection知道大家都已经熟悉了,代码不多讲,后面附有下载,欢迎大家提出批评.谢谢!实现方法还有Ap... 阅读全文
posted @ 2007-09-03 13:26 gjcn 阅读(450) 评论(0) 推荐(0) 编辑

2007年8月31日

摘要: 在一个ASP.NET应用程序中有许多保留文件夹1. Bin文件夹Bin文件夹包含应用程序所需的,用于控件、组件或者需要引用的任何其他代码的可部署程序集。该目录中存在的任何.dll文 件将自动地链接到应用程序。如果在该文件夹中留有不用的或过期的文件,则可能出现“二义性引用(ambiguous reference)”异常的风险。换句话说,如果两个不同的程序集定义相同的类(相同的... 阅读全文
posted @ 2007-08-31 09:59 gjcn 阅读(1631) 评论(0) 推荐(0) 编辑

导航