
C# 本质论
飞鹰再现
专注信息化,智能制造系统化产品开发与解决方案的研究。先任职一家企业产品架构师。喜爱架构设计,产品研发。Dont repeat yourself.
展开
-
偷懒秘笈之自动生成属性
引子不知你是否也和笔者一样,喜欢先写10个8个的private fields,然后再写访问它们的properties。这实在不是人干的工作,应该交给机器来作。在VS2005中,使用正则表达式进行查找、替换操作,就可以轻松完成属性的自动生成。如下图所示。下图中的“查找内容”文本框中填写的是:(private|protected) {:i+} {_*}{:i+};“替换为”文本框中填写的转载 2010-01-23 13:36:00 · 640 阅读 · 0 评论 -
.net 平台开源大本营 全面丰富
一、AOP框架Encase 是C#编写开发的为.NET平台提供的AOP框架。Encase 独特的提供了把方面(aspects)部署到运行时代码,而其它AOP框架依赖配置文件的方式。这种部署方面(aspects)的方法帮助缺少经验的开发人员提高开发效率。NKalore是一款编程语言,它扩展了C#允许在.net平台使用AOP。NKalore的语法简单、直观,它的编译器是基于Mono C#编原创 2015-02-27 11:58:09 · 2136 阅读 · 0 评论 -
多线程中的锁系统(一)-基础用法
平常在多线程开发中,总避免不了线程同步。本篇就对net多线程中的锁系统做个简单描述。目录一:lock、Monitor 1:基础。 2: 作用域。 3:字符串锁。 4:monitor使用二:mutex三:Semaphore四:总结一:lock、Monitor1:基础Lock是Monitor语法糖简化写法。转载 2015-02-25 16:59:36 · 596 阅读 · 0 评论 -
一个发现
今天调试程序时,无意中多按下了一个【开始】菜单键,竟然转到了反汇编的调试界面,对C#编译器的编译过程可以逐步查看。这个发现给我带来了一个小小的惊喜,以后不是可以了解更底层是什么运行的了吗。你知道这个功能吗?同时按下[Ctrl]与[开始]键,然后按下[F11]可以查看C#的反汇编调试界面。这个很酷哦!原创 2014-03-01 10:35:26 · 748 阅读 · 0 评论 -
C#操作符??和?:
先看如下代码:string strParam = Request.Params["param"];if ( strParam== null ){ strParam="";} string strParam= Request.Params["param"] == null ?"":转载 2014-02-21 08:25:30 · 2443 阅读 · 0 评论 -
《CLR via C#》读书笔记之:类型基础
源代码,IL和JIT编译器之间的关系:prologue:序幕 epilogue:尾声 序幕代码执行时必须在线程栈中为局部变量分配内存。CLR会自动将所有的局部变量初始化为null或0. 托管堆 堆上的所有对象都包含两个额外的成员:类型对象指针(type object pointer)和同步块索引(sync block index)在每个类型对象中都包含原创 2014-01-18 14:37:31 · 1154 阅读 · 1 评论 -
C# 随机数Random详解
C# 生成随机数private static char[] constant = { '0','1','2','3','4','5','6','7','8','9', 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s转载 2012-11-30 09:59:25 · 1543 阅读 · 0 评论 -
.net framework 源代码包下载地址
早就听说.net framework 源代码开源了。只可惜自己一直在学习,工作,没有静下心来去看过。在仔细看完《C#本质论》这本书后,愈发觉得对于原理性的东西的认知是多么的重要。看完这本书后,感觉有很多东西都豁然开朗了。心理有底气了许多。但在后来学习框架的开发原理及理论过程中(阅读《应用框架的设计与实现---.NET平台》),突然想看看微软是怎么写的。于是想到了.Net Framework 源原创 2012-10-26 09:46:31 · 2067 阅读 · 0 评论 -
探讨C#中的实体验证(Entity Validation)
探讨C#中的实体验证(Entity Validation)环境:Windows 2008, VS 2008 SP1, Asp.Net Mvc 1.0一. 可能是最原始的验证代码为了让问题尽量简单,我们就拿一个简单得不能再简单的User类开刀吧。现在我们要在User类里面加一个方法用于验证User实例的合转载 2012-10-24 09:12:52 · 3096 阅读 · 0 评论 -
浅析C#中new、override、virtual关键字的区别
最近偶简单的复习了下在C#中涉及到继承这个特性时,所需要用到的关键字,其中有一些关键点,特地整理出来,方便大家查阅。在微软的一次笔试和面试中也提到了这个问题:一、在C#中,new这个关键字使用频率非常高,主要有3个功能:a) 作为运算符用来创建一个对象和调用构造函数。b) 作为修饰符。c) 用于在泛型声明中约束可能用作类型参数的参数的类型。转载 2012-09-13 09:42:48 · 626 阅读 · 0 评论 -
面向对象:类的存与亡
类是面向对象的基础,面向对象的封装,继承,多态都是在对类进行各种各样的操作,包装,与处理。如果说类是一个有生命的物体的话,那他的生命周期,即存在与灭亡,则正对映与类的构造与析构。构造函数的功能是在创建对象时,使用给定的值来将对象初始化。析构函数的功能是用来释放一个对象的。在对象删除前,用它来做一些清理工作,它与构造函数的功能正好相反。析构函数(destruc原创 2012-09-21 10:44:59 · 689 阅读 · 0 评论 -
未能加载文件或程序集“”或它的某一个依赖项。系统找不到指定的文件
连续两天都为这个运行时错误“类型初始值设定项引发异常”而烦恼,调试也不知道哪里出了问题。上网Google一下,一大堆相同的问题,可是按照那些方法折腾来折腾去,问题还是一样。最后在优快云上发帖子问了,果然“重赏之下必有勇夫”,很快就有高手回复了,问题也随着解决了。哈哈。在此写个随笔,以后如果大家遇到类似问题,也可参考一下,自己也做个备忘,不然放在电脑上,又找不到,我的电脑文件到处乱放,有时连我自己转载 2012-08-22 15:44:31 · 2826 阅读 · 0 评论 -
C# 资源文件Resources.resx的使用 最快捷最犀利
这是看过在C#中使用资源文件最快捷,最直接的方法,代码如下:pic.Image = Properties.Resources.bigGreen;就是直接引用Properties命名空间下的Resources模块中的文件bigGreen这个最犀利,最直接,最有效。可与VB.NET中的pic.Image=My.Resources.bigGreen相媲美。其他方法就不原创 2012-07-04 10:23:04 · 5911 阅读 · 0 评论 -
.NET 2.0 - WinForm Control - DataGridView 编程36计 系列篇
.NET 2.0 - WinForm Control - DataGridView 编程36计(一)目录: ① 取得或者修改当前单元格的内容 ② 设定单元格只读 ③ 不显示最下面的新行 ④ 判断新增行 ⑤ 行的用户删除操作的自定义 ⑥ 行、列的隐藏和删除 ⑦ 禁止列或者行的Resize ⑧ 列宽和行高以及列头的高度和行头的宽度的自动调整 ⑨ 冻结列或行 ⑩ 列顺序的调整 ⑪ 行头列头的单元格 ⑫转载 2009-12-24 11:52:00 · 939 阅读 · 0 评论 -
提高C#编程水平的50个要点
1.总是用属性 (Property) 来代替可访问的数据成员2.在 readonly 和 const 之间,优先使用 readonly3.在 as 和 强制类型转换之间,优先使用 as 操作符4.使用条件属性 (Conditional Attributes) 来代替条件编译语句 #if 5.总是为自定义类重载 ToString 方法6.区别值类型和引用类型7.使用不可变的值类型(Immutabl转载 2009-12-19 12:21:00 · 692 阅读 · 0 评论 -
在C#代码中应用Log4Net系列教程
Log4Net应该可以说是DotNet中最流行的开源日志组件了。以前需要苦逼写的日志类,在Log4Net中简单地配置一下就搞定了。没用过Log4Net,真心不知道原来日志组件也可以做得这么灵活,当然这系列的教程讲的是Log4Net的应用。学习完这系列的教程,你可以实现如下图一样整洁、醒目的日志文件。教程中的每一篇文章都有可以运行的例子,并且教程里面的例子基本上都是典型的应用,你可以直接拿来用。我整转载 2015-05-02 11:11:07 · 1820 阅读 · 0 评论