effective:More Effective C++:通过引用捕获异常(转)

当你写一个catch子句时,必须确定让异常通过何种方式传递到catch子句里。你可以有三个选择:与你给函数传递参数一样,通过指针(by pointer),通过传值(by value)或通过引用(by reference)。  我们首先讨论通过指针方式捕获异常(catch by pointer)。从throw处传递一个异常到catch子句是一个缓慢的过程,在理论上这种方法的实现对于这个过程来说是效率... [阅读全文]

effectivejava:Effective C# 第 5章:和Framework一起工作

我同事也是我朋友Martin Shoemaker研究个很严肃问题那就是:“我必须写这样.Net代码吗?” 答案是也希望是:不你应该使用你手头上有也是你会用工具来帮助你写代码  .Net框架是个很丰富类库你对框架学习越多你自己要写代码就越少框架库会帮你完成很多工作这章就告诉你些.Net框架里最常用些技术当你在.Net框架中有多个选择时这章中些原则会帮助你选择最好你可以使用些已... [阅读全文]

effectivejava:Effective C# 原则36:利用.Net运行时诊断

当有问题发生时它们往往并不是在实验时候发生机器有轻松调试工具在很多实际情况中你不好修正问题总是发生在用户机器上那里没有调试环境也没有好思路方法计算出问题情况在实际情况中有经验开发人员会创建个思路方法让系统在运行时捕获尽可能多信息.Net框架已经包含些类集合利用这些集合你可以做些通用调试而且这些类可以在运行时或者编译时进行配置如果你利用它们你就可以轻松发现在实际运行时问题使用框架里已经存在代码你可以... [阅读全文]

effectivejava:Effective C# 原则37:使用标准的配置机制

我们要寻求种避免直接写代码应用配置和信息设置思路方法我们已经创建了多种区别策略来存储配置信息而我们是要寻求种正确思路方法我们要不断提高和改我们想法有关哪里是放置这些信息好地方INI文件?这是Windows3.1做事配置信息结构是受限制而且在文件名上可能还会和其它相冲突注册表?是是这个正确想法但它也有它限制乱 7 8糟可能会通过在注册表里写些信息来严重破坏计算机正写注册表存在危险个应用必须有管理员权... [阅读全文]

effectivejava:Effective C# 原则38:使用和支持数据绑定

有经验Windows员定对写代码从个Control控件上取值以及把值存储到Control控件上很熟悉:public Form1 : Form{ private MyType myDataValue; private TextBox textBoxName; private void InitializeComponent( ) {  textBoxName.Text = myDataValue.N... [阅读全文]

effectivejava:Effective C# 原则39:使用.Net验证

用户输入可能是多种多样:你必须在交互式Control控件中尽可能验证输入写些用户输入验证可能很做作而且也有出错可能但还是很有必要不能太相信用户输入用户可能会输入任何内容导致异常发生进而进行SQL注入式攻击我们不希望任何类似这样事情发生你应该了解足够信息来怀疑用户输入很好每个人都应该这样做这也就是为什么.Net框架已经扩展了这样功能你可以使用这些功能从而使自己代码编写工作减到最小我们要对用户输入每块... [阅读全文]

effectivejava:Effective C# 原则40:根据需求选择集合

“哪种集合是最好?”答案是:“视情况而定” 区别集合有区别性能而且在区别行为上有区别优化.Net框架支持很多类似集合:链表队列栈以及其它些集合C#支持多维它性能和维和锯齿都有所区别.Net框架同样包含了很多特殊集合在你创建你自己集合类的前请仔细参阅这些集合你可以发现很多集合很快所有集合都实现了ICollection接口在介绍说明文档中列出了所有实现了... [阅读全文]

effectivejava:Effective C# 原则41:选择DataSet而不是自定义的数据结构

两个原则把DataSet名声搞不好首先就是使用XML序列化DataSet和其它非.Net代码进行交互时不方便如果在Web服务API中使用DataSet时在和其它没有使用.Net框架系统进行交互时会相当困难其次它是个很般容器你可以通过欺骗.Net框架里些安全类型来DataSet但在现代软件Software系统中DataSet还可以解决很多常规问题如果你明白它优势避免它缺点你就可以扩展这个类型了  D... [阅读全文]

effectivejava:Effective C# 原则42:使用特性进行简单的反射

当你创建了个和反射相关系统时你应该为你自己类型思路方法以及属性定义些自己特性这样可以让它们更容易被访问自定义特性标示了你想让这些思路方法在运行时如何被使用特性可以测试些目标对象上属性测试这些属性可以最小化反射时可能而产生类型  假设你须要创建个机制用于在运行时软件Software上添加个菜单条目到个命令句柄上这个须要很简单:放个集到目录里然后可以自己发现有关它些新菜单条目以及新菜单命令这是利用反射... [阅读全文]

effectivejava:Effective C# 原则43:请勿滥用反射

创建 2进制组件时同时也意味着你要使用迟后绑定和反射来查找你所须要具有特殊功能代码反射是个很有力工具而且它让你可以写出可动态配置软件Software使用反射个应用可以通过添加新组件来更新功能而这些组件是在软件Software最开始发布时没有这是有利  这伸缩性也带来了些复杂问题而且复杂问题增加又会增加出现其它问题可能当你使用反射时你是围绕着C#安全类型然而成员参数和返回值是以.Object类型存在... [阅读全文]

effectivejava:Effective C# 原则44:创建应用程序特定的异常类

异常是种报告机制它可以在远离发生地方进行处理所有有关发生信息必须包含在异常对象中在发生过程中你可能想把底层转化成详细应用而且不丢失有关任何信息你须要仔细考虑有关如何在C#应用中创建特殊异常类第步就是要理解什么时候以及为什么要创建新异常类以及如何构造继承异常信息当开发者使用你库来写catch语句时他们是基于特殊进行时异常在区别为同行为每个区别异常类可以有区别处理要完成:try { Foo( ); B... [阅读全文]

effectivejava:Effective C# 原则45:选择强异常来保护程序

当你抛出异常时你就在应用中引入了个中断事件而且危机到控制流程使得期望行为不能发生更糟糕是你还要把清理工作留给最终写代码捕获了异常员而当个异常发生时如果你可以从你所管理状态中直接捕获那么你还可以采取些有效思路方法谢天谢地C#社区不须要创建自己异常安全策略C社区里人已经为我们完成了所有艰巨工作以Tom Cargill文章开头:“异常处理:种安全感觉” 而且Herb Sutter... [阅读全文]

effectivejava:Effective C# 原则47:选择安全的代码

.Net运行时已经设计好了些怀有恶意代码不能渗透到远程计算机上并执行目前些分部式系统依懒于从远程机器上下载和执行代码如果你可以通过Internet或者以太网来发布你软件Software或者直接从web上运行但你须要明白CRL在你集中些限制如果CLR不是完全相信个集它会限制些行为这些代码要有访问安全认证(CAS)从另方面来说CLR强制要求基于角色安全认证这样这些代码才能或者不能在基于个特殊角色帐号下... [阅读全文]

effectivejava:Effective C# 原则48:了解更多的工具和资源

对于C#以及.Net来说这是激动人心时候这些工具目前还是比较新整个社区都在学习如何使用这些工具些资源可以帮助你提高你知识以及为.Net和C#创建个更大知识社区这些工具是我每天都向C#开发人员推荐有关C#实战全部内容还在写作当中跟进它们而且不断了解相关内容  第个应该在每个C#开发人员工具箱工具是NUnit, 它可以在www.nunit.org网站WebSite上找到NUnit是个自动进行单元测试工... [阅读全文]

effectivejava:Effective C# 原则49:为C#2.0做好准备

C#2.0在2005年已经可以使用了它有些主要新功能这样使得目前使用些最好实际经验可能会有所改变这也会随着下代工具发布而修改尽管目前你还可以不使用这些功能但你应该这些做些准备  当Visual Studio .net2005发布后会得到个新开发环境升级C#语言附加到这门语言上内容确实让你成为更有工作效率开发者:你将可以写更好重用代码以及用几行就可以写出更高级结构总而言的你可以更快完成你工作  C#... [阅读全文]

effectivejava:Effective C# 原则50:了解ECMA标准

ECMA标准是C#语言所有功能官方介绍说明ECMA-334定义了C#语言1.0标准你可以从The C# Programming Language这本书上学习C#2.0计划(译注:现在已经不是计划了)这本书作者是Anders Hejlsberg, Scott Wiltamuth, 和 Peter Golde (Addison-Wesley, 2003)这本书是个语言手册而不是指南它详细介绍说明了这门... [阅读全文]

effectivejava:Effective C# 原则17:装箱和拆箱的最小化

值类型是数据容器它们不具备多太性另方面就是说.Net框架被设计成单继承引用类型.Object在整个继承关系中做为根对象存在设计这两种类型目是截然区别.Net框架使用了装箱和拆箱来链接两种区别类型数据装箱是把个值类型数据放置在个无类型引用对象上从而使个值类型在须要时可以当成引用类型来使用拆箱则是额外从“箱”上拷贝份值类型数据装箱和拆箱可以让你在须要使用.Object对象地方使... [阅读全文]

effectivejava:Effective C# 原则35:选择重写函数而不是使用事件句柄

很多.Net类提供了两种区别思路方法来控制些系统事件那就是要么添加个事件句柄;要么重写基类虚为什么要提供两个思路方法来完成同样事情呢?其实很简单那就是区别情况下要为思路方法在派生类内部你应该总是重写虚而对于你用户则应该限制他们只使用句柄来响应些不相关对象上事件  例如你很了个很不错Windows应用它要响应鼠标点下事件在你窗体类中你可以选择重写OnMouseDown思路方法:public MyF... [阅读全文]

effectivejava:Effective C# 原则系列文章目录

  Effective C# 原则1:尽可能使用属性(property)而不是数据成员(field)  Effective C# 原则2:为你常量选择readonly而不是const  Effective C# 原则3:选择is或者as操作符而不是做强制类型转换  Effective C# 原则4:用条件属性而不是#预编译块  Effective C# 原则5:始终提供  Effective C#... [阅读全文]

effective:《Effective C# 精髓》摘选

昨天买了本Effective C#看了几个Item虽然没有当初读Effective C时那般震撼但是也收获不少把其中要点记录于下有些条款加上了自己理解权当作读书笔记吧 :-)  Item 1: Always Use Properties Instead of Accessible Data Members  这个是地球人都知道条款了你需要记住属性是类外部接口部分而(公共)成员却是内部实现如果把内部... [阅读全文]

effectivejava:Effective Java Second Edition中文翻译术语表

翻译时的原则: 1、由于EJ的书籍特性,基本上比较不常见的或者比较新的在全文会采用“中文(英文)”的格式 2、术语表在书籍后面列出来作为参考 3、此贴作为讨论贴 ==================================================================== 英文 中文 access control 访问控制 accessibilit... [阅读全文]

moreeffective:More effective C++学习笔记

More effective C摘要 3 基础议题部分: 3.1 M1:指针和引用区别 首先,要认识到在任何情况下都不能使用指向空值引用引用必须被化个引用必须总是指向某些对象 (不存在指向空值引用意味着使用引用代码效率比使用指针要高) 其次指针可以被重新赋值以指向另个区别对象 什么情况下应该使用指针? 1存在不指向任何对象可能 2能够在区别时刻指向区别对象 什么... [阅读全文]
1 共1条 分1页