《More Effective C# 》读书笔记 第一章
在 C# 中,使用属性而不是可访问的数据成员可以提高代码的可维护性和灵活性。以下是一些使用属性而不是可访问的数据成员的好处:封装性更强:通过使用属性,可以将数据成员封装起来,以防止外部代码直接访问。例如,可以定义一个只读属性,以确保某个数据成员只能被读取,而不能被修改。代码更清晰:使用属性可以使代码更加清晰和易于理解。属性可以像普通字段一样使用,但是它们提供了更多的控制和保护。更灵活的设计:使用....
Android应用开发提高系列(3)——《Effective Java 中文版》读书笔记
书籍 《Effective Java 中文版》 03版 潘爱民译 本书介绍了57条极具实用价值的经验规则。这些经验规则涵盖了大多数开发人员每天所面临的问题的解决方案,通过对Java平台设计专家所使用的技术的全面描述,揭示了应坐什么和不应做什么,才能产生清晰、健壮和高效的代码。 正文 注意:条目和用语可能与书籍有所出入,但尽量保持原样加一些自己的理解。 ...
《Effective C++》 读书笔记之四 设计与申明
《Effective C++》 读书笔记之四 设计与申明 条款18:让接口容易被正确使用,不易被误用。 重点: 好的接口很容易被正确使用,不容易被误用。你应该在你的所有接口中努力达成这些性质。 “促进正确使用”的办法包括接口的一致性,以及与内置类型的行为兼容。 “阻止误用”的办法包括建立新类型、限制类型上的操作,束缚对象值,以及消除客户的资源管理责任。 tr1::shared_p...
《Effective C++》 读书笔记之二 构造/析构/赋值运算
《Effective C++》 读书笔记之二 构造/析构/赋值运算 条款10:令赋值(assignment)操作符返回一个reference to *this。 例子: 1 2 3 4 5 Widget& operator=(const Widget& rhs) { ... &nb...
《Effective C#》读书笔记——条目16:避免创建非必要的对象<.NET资源管理>
我们知道:C#是一门虚拟机语言,C#编译器首先将C#代码编译成IL代码,运行程序时CLR(Common Language Runtime,公共语言运行时)通过调用JIT(just-in-time Compiler,即时编译器)来将IL代动态即时编译成可执行的机器码。GC(Garbage Collector,垃圾收集器)自动为我们的应用程序进行内存管理的分配和释放,(具体参见:了...
《Effective C#》读书笔记——条目3:推荐使用is或as而不是强制转换类型
C#是强类型语言,在开发过程中类型之间的相互转化是一种很常见的场景。C#为类型转换提供两种选择: 1.使用as操作符 2.使用强制类型转换 或者可以使用更保险的做法,首先用is测试一下,能否转换成功,然后再使用as或者强制类型转换。在大部分情况下,我们应该尽可能的使用as操作符: 因为相对于强制类型转换来说,as更安全,也更加高效。as和is操作符都不会执行任何用户自定义的转换,它...
《Effective C#》读书笔记——条目2:用运行时常量而不是编译期常量
C#语言中有两种类型的常量:编译期常量和运行时常量。应该尽量使用运行时常量,而不是编译期常量。虽然编译期常量略快一些,但是没有运行时常量那么灵活。应仅仅在那些性能异常敏感,且常量的值在各个版本之间绝对不会变化时,才使用编译器常量。 运行时常量使用readonly关键字声明,编译时常量使用const关键字声明: 1 //编译时常量,可以声明在方法中 2 p...
《Effective C#》读书笔记——条目6:理解几个等同性判断之间的关系
创建自定义的类型时(无论是类还是struct),应为类型定义”同等性“的含义。在C#中为我们提供了四种不同的函数来判断两个对象是否”相等“: 1 public static bool ReferenceEquals(object left, object right); 2 public static bool Equals(object left, object right); 3 publi....
《Effective C#》读书笔记——条目27:让类型支持序列化<使用C#表达设计>
持久化(persistence)是类型的一个重要特性。只要我们的类型不是UI控件、窗体或者表单,都应该尽可能的为类型添加序列化支持。.NET的序列化是把类中所有成员变量保存到输出流中,同时.NET的序列化还支持任意的对象图(object graph):即使你的对象上有一个循环引用,serialize 和deserialize 方法都只会为你的实际对象读取和储存一次。 1. .NET的...
《Effective C#》读书笔记——条目19:保证0为值类型的有效状态<.NET资源管理>
NET系统的默认初始化过程会将所有的对象设置为0。我们就会难免创建出一个初始化为0值的值类型,所以我们应该将0作为类型的默认值,可以避免一些不必要的Bug。 1.将0设置为枚举的有效值 使用枚举时我们必须将0设置为枚举的一个有效选项。所以枚举值都派生于System.ValueType。枚举默认的值开始于0,但是也可以自定义: 1 public enum Month 2 ...
本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。