上一页 1 ··· 3 4 5 6 7 8 9 下一页

2012年4月9日

.NET 设计规范--.NET约定、惯用法与模式--5.成员设计

摘要: 方法、属性、事件、构造函数已经字段统称为成员。 5.1 成员设计的一般规范 5.1.1 成员重载 成员重载是指在同一个类型中创建两个或两个以上的成员,这些成员有相同的名字,唯一不同的是参数的数量或参数的类型。因为只有方法、构造函数以及索引属性可以有参数,所以只有这些成员可以被重载。 要尽量用描述性的参数名来说明在较短的重载中使用的默认值。在一族对参数的数量进行重载的成员中年,较长的重载应该用参数名来说明与之对应的较短的重载所使用的默认值,这最适用于布尔型参数。 避免在重载中随意地给参数命名。如果两个重载中的某个参数表示相同的输入,那么该参数的名字应该相同。 避免使重载成员的参数顺... 阅读全文

posted @ 2012-04-09 20:58 lufangtao 阅读(279) 评论(0) 推荐(0) 编辑

.NET 设计规范--.NET约定、惯用法与模式--4.类型设计规范

摘要: 要确每个类型有一组定义明确、相互关联的成员组成,而不仅仅是一些无关功能的随机集合。 4.1 类型和名字空间 要用名字空间把类型组织成一个相关的特性域的层次结构,该层次结构应该为开发人员更容易地浏览框架并找到想要的API而优化。 避免非常深的名字空间层次。这样的层次难于浏览,因为用户不得不经常的回溯。 避免有太多的名字空间。在最常见的场景中,框架的用户应该不需要导入许多的名字空间。只要有可能,就应该把常见场景中一起使用的类型放在一个单独的名字空间中。 避免把为高级场景而设计的类型和为常见编程任务而设计的类型放在同一个名字空间中。 不要不指定名字空间就定义类型 标准子名字空间的命... 阅读全文

posted @ 2012-04-09 14:31 lufangtao 阅读(321) 评论(0) 推荐(0) 编辑

2012年4月8日

.NET 设计规范--.NET约定、惯用法与模式--3.命名规范

摘要: 1.大小写约定 1.1标示符的大小写规则 为了区分一个标示符中的多个单词,把标示符中每个单词的首字母大写。不要用下划线来区分单词,或者在标示符中的任何地方使用下划线。PascalCasing约定被用于处理参数名以外的所有标示符,它把标示符中每个单词的首字母(包括长度为两个字符以上的首字母缩写词)大写,两个字母长的首字母缩写词是一个特例,在这种情况下两个字母都要大写,例如IOStream.camelCasing约定仅用于参数的名字,它把标示符中除了第一个单词之外的所有单词的首字母大写,如果camelCasing风格的标示符以两个字母长的首字母缩写词开始,那么两个字母都要小写。要把Pasca... 阅读全文

posted @ 2012-04-08 16:54 lufangtao 阅读(552) 评论(0) 推荐(0) 编辑

.NET 设计规范--.NET约定、惯用法与模式-2.框架设计基础

摘要: 要设计既功能强大又易于使用的框架 要明确的为具有不同编程风格、需求、技能以及使用不同编程语言的开发人员设计框架 要了解那些使用多语言框架的广大开发人员1.框架设计的基本原则场景驱动设计原则:必须从一组使用场景以及实现这些场景的样例代码开始。要确保对任何包含公有API的特性的设计来说,其核心部分都是API设计规范。要为每一个主要的特性域定义一些最常见的使用场景。要确保使用场景与适当的抽象层次相对性。场景应该大致与最终用户的用例相对应。要以这样的方式来设计API:先为主要的使用场景编写样例代码,然后再定义对象模型来支持这些样例代码。要用至少两种不同的编程语言来为主要的场景编写样例代码,最好... 阅读全文

posted @ 2012-04-08 11:43 lufangtao 阅读(291) 评论(0) 推荐(0) 编辑

.NET 设计规范--.NET约定、惯用法与模式--1.概述

摘要: 当可重用程序库的供应商为了开发其高层API而采纳面向对象编程时,就产生了框架(framework)的概念。框架的引入使得开发人员不再需要重头开始编写应用程序。框架会提供所需的大部分功能,这些功能经过开发人员的定制和连接,就得到了最终的应用程序。 这些规范为我们这些框架设计者提供了一套工具,可以在自己和使用框架的开发者之间形成一种共同语言。精心设计的框架所具备的品质 简单设计代价高充满利弊权衡借鉴过去考虑未来发展良好的集成性一致性 阅读全文

posted @ 2012-04-08 10:24 lufangtao 阅读(251) 评论(0) 推荐(1) 编辑

2012年4月7日

Microsoft.NET框架程序设计--20 CLR寄宿、应用程序域、反射

摘要: 应用程序域是CLR提供的一种旨在减少内存使用、提高系统系能的新型机制。而反射使得我们可以很容易使用自己活着第三方的类型来增强应用程序的功能,从而帮助我们设计出可动态扩展的应用程序。1.元数据:.NET框架的基石元数据描述了一个类型的字段和方法。元数据使得一种语言开发的类型可以被另一种不同的语言所使用。反射允许我们构建可动态扩展的应用程序。一个方法可以使用反射从其他代码中获取信息来改变自己的行为。一个方法还可以使用反射来根据调用者的信息改变自己的行为。2.CLR寄宿 在开发CLR时,微软实际上是将其作为以一个COM服务器实现在一个DLL内。也就是说,微软为CLR定义了一个标准的COM接口,并.. 阅读全文

posted @ 2012-04-07 10:36 lufangtao 阅读(369) 评论(0) 推荐(0) 编辑

2012年4月6日

Microsoft.NET框架程序设计--19 自动内存管理(垃圾收集)

摘要: 1.垃圾收集平台基本原理解析访问一个资源所需要的几个步骤: 调用中间语言(IL)中的newobj指令,为表示某个特定资源的类型实例分配一定的内存空间。当我们在C#或者Visual Basic 以及其他一些编程语言中调用new操作符时,编译器将产生newobj指令初始化上一步所得的内存,设置资源的初始化状态,从而使其可以为程序所用。一个类型的实例构造器负责这样的初始化工作。通过访问类型成员来使用资源,这根据需要会有一些反复。销毁资源状态,执行清理工作释放内存,这一步右垃圾回收器全权负责。(注意这里的内存指的是分配在托管堆上的引用类型实例所占有的内存资源。处理托管堆中的内存,系统运行时还有一类内. 阅读全文

posted @ 2012-04-06 10:54 lufangtao 阅读(232) 评论(0) 推荐(0) 编辑

2012年4月5日

Microsoft.NET框架程序设计--18 异常

摘要: 异常处理的好处: 1.利用异常处理,我们可以将资源清理代码放在一个固定的位置,并且确保它们得到执行。 2.利用异常处理,我们可以将处理异常的代码放在一个集中的位置。 3.利用异常处理,我们可以很容易定位和修复代码中的bug。1.异常处理的演化大多数Win32 API都返回FALSE来表示函数调用出现了问题,而调用者则可以通过调用GetLastError函数来获得这些问题的相关信息。另一方面,COM选择了返回一个HRESULT来描述问题。如果HRESULT的高位为1,则表示一个假设被违反,HRESULT的其余位表示的值则可以帮助我们判断问题的原因。异常对象相较于32位的错误码值有这诸多的优... 阅读全文

posted @ 2012-04-05 09:01 lufangtao 阅读(241) 评论(0) 推荐(0) 编辑

2012年4月4日

Microsoft.NET框架程序设计--17 委托

摘要: 1.认识委托 在.NET框架中,回调函数仍然像在非托管Windows编程中一样有用和普遍。但是,.NET框架为回调函数提供了一种称为委托的类型安全的机制。在这里,我copy一下书籍上的一个很好的例子:namespace @delegate{ class Set { private Object[] items; public Set(int numItems) { items = new Object[numItems]; for (int i = 0; i < numItems; i++) ... 阅读全文

posted @ 2012-04-04 19:13 lufangtao 阅读(328) 评论(0) 推荐(0) 编辑

Microsoft.NET框架程序设计--16 定制特性

摘要: 定制特性(custom attribute)任何人都可以使用定制特性来定义一下信息,并将这些信息用于几乎所有的元数据表项上,然后在运行时通过查询这些可扩展的元数据信息来动态地改变代码的执行方式。1.使用定制特性定制特性仅仅是为了目标元素提供关联附加信息的一种方式。编译器仅仅只是检测源代码中的定制特性,然后产生相应的元数据。.NET框架(FCL)发布的时候带有很多预定义特性。例如System.FlagsAttribute,System.SerializeableAttribute等。C#中,将定制特性放在紧挨着目标元素前的一个方括号[,]中,表示将该定制特性应用到目标元素上了。在VB中使用的.. 阅读全文

posted @ 2012-04-04 16:05 lufangtao 阅读(317) 评论(0) 推荐(0) 编辑

上一页 1 ··· 3 4 5 6 7 8 9 下一页

导航