- 博客(17)
- 资源 (1)
- 收藏
- 关注
转载 .NET系统架构设计与开发
<br /> <br /> <br />.NET系统架构设计与开发<br />我们在做着表面上看似是对于各种不同应用的开发,其实背后所对应的架构设计都是相对稳定的。在一个好的架构下编程,不仅对于开发人员是一件赏心悦目的事情,更重要的是软件能够表现出一个健康的姿态;而架构设计的不合理,不仅让开发人员受苦受难,软件本身的生命周期更是受到严重威胁。这里我将针对在微软dotNet平台上做应用开发系统的一般架构流程设计做一个粗浅的讨论。<br /> <br />总体设计图<br /><br /> <br /> 表示层
2010-12-31 21:10:00
1005
原创 定制特性和反射
定制特性可以直接影响代码的运行方式.Net 允许用户在各个数据项上定义特性,也允许用户定义自己的特性.这些特性不会影响编译过程,编译器不能识别他们,但这些特性在应用于程序元素时,可以在编译好的程序集中用作元数据.并通过反射读取他们,使它们在运行时做出决策.即定制特性可以直接影响代码的运行方式.编译器遇见特性时的处理[FieldName("SocialSecurityNumber")]public string SocialSecurityNumber{ //...}编译器发现这个属性有一个特性Field
2010-10-31 13:29:00
418
转载 异步编程
<br />让我们来看看同步异步的区别:<br />同步方法调用在程序继续执行之前需要等待同步方法执行完毕返回结果<br />异步方法则在被调用之后立即返回以便程序在被调用方法完成其任务的同时执行其它操作<br /><br />.NET框架基类库中有好几种类都可以提供同步和异步的方法调用。<br />因为同步方法调用会导致程序流程中途等待,所以采用同步方法的情况下往往会导致程序执行的延迟<br />相比来说,在某些条件下选择异步方法调用就可能更好一些<br />例如,有的时候程序需要给多个Web服务发出请求
2010-10-29 13:28:00
393
原创 委托的BeginInvoke 和 EndInvoke及构造
<br />1.Delegate 构造<br /> protected Delegate ( Object target, string method)target 类实例,委托对其调用 method 委托表示的实例方法的名称定义一个委托 public delegate void myEventHandler(int i,out string o);CLR为我们做了4件事情<br />1.定义一个构造器<br />2.定义一个虚方法BeginInvoke<br />3.定义一个虚方法En
2010-10-29 12:37:00
660
转载 委托和事件
紧耦合<br /> 从前,在南方一块奇异的土地上,有个工人名叫彼得,他非常勤奋,对他的老板总是百依百顺。但是他的老板是个吝啬的人,从不信任别人,坚决要求随时知道彼得的工作进度,以防止他偷懒。但是彼得又不想让老板呆在他的办公室里站在背后盯着他,于是就对老板做出承诺:无论何时,只要我的工作取得了一点进展我都会及时让你知道。彼得通过周期性地使用“带类型的引用”(原文为:“typed reference” 也就是delegate??)“回调”他的老板来实现他的承诺,如下:<br />class Worker {<
2010-10-28 14:42:00
331
原创 对泛型的一些理解
<br />看到很多程序员都喜欢用IList作为返回类型:实体类作为参数,泛型参数可以是值类型,也可以是引用类型,ProductInfo可以是其他对象,这我知道,可问题在这,这里放其他类型有意义吗,比如把ProductInfo改成其他的实体类,下面的很多代码还是得改啊,比如 <br />ProductInfo product = new ProductInfo(rdr.GetString(0), rdr.GetString(1), rdr.GetString(2), rdr.GetString(3), rd
2010-06-10 14:11:00
384
转载 从此弃IList从List
<br />刚开始接触.net2.0的时候,我是从pet shop4.0看起的。 <br />确实pet shop4.0运用了很精湛的架构设计,也曾一度让我深深迷恋其中。 <br />也是那个时候,我才开始认识IList<T>这个东东,也曾经唯IList<T>是从,非IList<T>不用。 <br />渐渐地,问题来了,首先IList 泛型接口是 ICollection 泛型接口的子代,并且是所有泛型列表的基接口。 <br />它仅仅是所有泛型类型的接口,并没有太多方法可以方便实用,如果仅仅是作为集合数据的
2010-06-10 13:44:00
529
原创 IDictionary与IDictionaryEnumerator
IDictionary 接口是键/值对的非通用集合的基接口。每个元素都是一个存储在 DictionaryEntry 对象中的键/值对。IDictionary 实现有三种类别:只读、固定大小、可变大小。无法修改只读 IDictionary 对象。固定大小的 IDictionary 对象不允许添加或移除元素,但允许修改现有元素。可变大小的 IDictionary 对象允许添加、移除和修改元素。C# 语言中的 foreach 语句(在 Visual Basic 中为 for each)需要集合中每个元素的类型。由
2010-06-10 13:18:00
4457
2
原创 ICollection实现
ICollection 继承自IEnumerable实现的时候需要实现int ICollection.Count bool ICollection.IsSynchronized object ICollection.SyncRoot void ICollection.CopyTo IEnumerat
2010-06-10 12:55:00
605
原创 对IComparable,IComparer,IEnumerable,IEnumerator的理解
IComparable接口要实现CompareTo方法,并且一定要通过值可以排序的类型来实现,例如基本数值类型(整型等),或者字符串,看下面的代码可能易懂一点:public class Temperature : IComparable { protected double temperatureF; public int CompareTo(object obj) { if(obj is Temperature) { Temperature oth
2010-06-09 15:46:00
516
转载 IComparer 和 IComparable
<br /> 本文分步介绍了两个接口的使用: IComparer 和 IComparable 。 这些接口同一文章中讨论有两个原因而定。 经常一起,用于这些接口,并且尽管接口类似 (并具有类似名称),它们用途不同。<br /> 如果数组类型 (如 字符串 或 整数 ) 已支持 IComparer 可以不提供任何显式引用为 IComparer 排序数组。 在这种情况下该数组的元素会转换为 IComparer ( Comparer.Default ) 的默认实现,为您。 但是,如果想要为自定义的对象
2010-06-09 14:55:00
975
原创 getHashCode()
<br />getHashCode() 取值范围是 int.MinValue ~ int.MaxValue<br />它的算法将数字左移动16位,再与原来的数字进行异或操作,最后将结果乘以16进制数15051505<br /> <br />一般用法:<br /> GetHashCode函数一般是在操作HashTable或者Dictionary之类的数据集的时候被调用,其目的是产生一个没有歧义的key。也可以像toString() 或Equals()函数一样重写它。<br /> 对于G
2010-06-09 14:36:00
2413
原创 基础
1.System.Collection 类名空间 ArrayList 类 BitArray 类 BitArray类是一个比特数组,数组的大小在创建对象的时候已经确定,每个数据元素只能表示一个比特,元素的值只能是1与0,其中用true表示1,用false表示0,当用其他数据类型的元素初始化该对象时,那么每个元素将占用该类型在内存中存储长度的数组空间。 and(BitArray value) BitArray中的元素执行按位“与”运算 n
2010-06-09 13:14:00
453
原创 存储过程基础
<br />1.基本语法<br /> Create or replace procedure POC_TEST<br /> (<br /> 参数1 in Number;<br /> 参数2 in Number;<br /> 参数3 表名.字段名%Type<br /> )IS<br /> <br /> 变量1 Integer :=0;<br /> 变量2 Date<br /> <br /> begin<br />
2010-06-09 09:53:00
309
原创 Char ,Varchar 与 VarChar2
1 Char 的长度是固定的 比如Char VarChar 定义了20的字符长度, 如果存储入 "abc" 字符串的话 Char 将占用20的长度,而Varchar按实际长度保存 当使用union查询不同表时 可以使用to_char() 函数使字段长度保持一致,避免出错2 Char 的效率比VarChar高3 目前VarChar 与 VarChar2是同义词 工业标准的VarChar 可以存储空字符串,但是Oracle不这样做,它自己开发了一个类型VarChar2 使其可以保存Nu
2010-06-09 09:08:00
335
原创 垃圾回收机制
<br />面试被问到了垃圾回收问题,这个方面的知识一直没怎么注意。借鉴了网上一些资料现将该知识罗列一下。<br /> <br /> .net的垃圾回收,借鉴了java的垃圾回收机制。以前winForm程序由于没有垃圾回收机制,程序员往往忘了显示的释放资源,导致资源占用越来越多。最终导致系统的崩溃。有了垃圾回收机制,解决了这一问题。<br /> 1 .Net 垃圾回收的范围<br /> 在.Net中 存在两种变量,值变量和引用变量。 值变量是放在线程栈上的,而引用变量是放在托管堆上的。 .Net
2010-06-08 17:22:00
389
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人