Effective C# 摘录(2) - .NET资源管理

简介:

12:变量声明时初始化优于赋值语句。
   Prefer Variable Initializers to Assignment Statements。
   若类的实例变量成员在声明时初始化,初始化代码会内联到该类的每个实例构造函数中:构造对象实例时,先执行初始化代码,再调用基类构造函数,最后执行构造函数中代码。
   当构造函数有多个重载版本时,建议在定义字段时避免进行初始化,而应该将这些公共的初始化语句放在一个构造函数中,然后使其他的构造器显示地调用这个初始化构造函数。  

13:使用静态构造器初始化静态类成员。
   Initialize Static Class Members with Static Constructors.
   若类中的静态变量成员在声明时初始化,初始化代码会内联到类的静态构造函数中:运行时,先执行初始化代码,再执行静态构造函数中的代码。建议:简单静态成员可以直接在声明时初始化,而可能产生异常的初始化则应放在静态构造函数中初始化。

14:利用构造器链。
   Utilize Constructor Chaining.
   只能使用this(args)(构造器链中的最后一个构造函数中调用Base))和base(args)中一个,不能同时使用。

15:利用using和try/finally语句来清理资源。
   Utilize using and Try/finally for Resource Cleanup.
   using所使用的对象必须继承IDisposable,且不支持运行时类型检查(可用as转换,但可能会隐藏bug,一般确保每一个实现了IDispose接口的对象分配在在using范围内)。

16:尽量减少内存垃圾。
   Minimize Garbage.
   使用类成员而代替每个函数中都用到的局部变量;使用Singleton模式来实现公用对象或将其实现为对象池。

17:尽量减少装箱与拆箱。
   Minimize Boxing and Unboxing。
   防止隐式装箱。eg:Console.WriteLine( "Number list:{0}, {1}, {2}",1,2,3 );=>Console.WriteLine( "Number list:{0}, {1}, {2}",1.ToString(),2.ToString(),3.ToString() );

18:实现标准Dispose模式。
   Implement the Standard Dispose Pattern.
   Dispose()应做的工作:释放所有非托管资源;释放所有托管资源,这包括取消事件绑定;设置标志位,标明对象已经释放;调用“GC.SuppressFinalize(this)”来避免GC再去掉用对象的析构函数。
   如果父类和子类都使用了非托管资源,则子类在重载父类的Dispose()函数中,要记得显式调用父类的Dispose()。
    

本文转自Silent Void博客园博客,原文链接:http://www.cnblogs.com/happyhippy/archive/2007/03/15/676392.html,如需转载请自行联系原作者

相关文章
|
14天前
|
Java 物联网 C#
C#/.NET/.NET Core学习路线集合,学习不迷路!
C#/.NET/.NET Core学习路线集合,学习不迷路!
|
2月前
|
开发框架 .NET C#
C#|.net core 基础 - 删除字符串最后一个字符的七大类N种实现方式
【10月更文挑战第9天】在 C#/.NET Core 中,有多种方法可以删除字符串的最后一个字符,包括使用 `Substring` 方法、`Remove` 方法、`ToCharArray` 与 `Array.Copy`、`StringBuilder`、正则表达式、循环遍历字符数组以及使用 LINQ 的 `SkipLast` 方法。
|
18天前
|
Java 物联网 编译器
C#一分钟浅谈:.NET Core 与 .NET 5 区别
本文对比了 .NET Core 和 .NET 5,从历史背景、主要区别、常见问题及易错点等方面进行了详细分析。.NET Core 侧重跨平台支持和高性能,而 .NET 5 在此基础上统一了 .NET 生态系统,增加了更多新特性和优化。开发者可根据具体需求选择合适的版本。
41 7
|
14天前
|
人工智能 开发框架 前端开发
C#/.NET/.NET Core技术前沿周刊 | 第 12 期(2024年11.01-11.10)
C#/.NET/.NET Core技术前沿周刊 | 第 12 期(2024年11.01-11.10)
|
14天前
|
开发框架 网络协议 .NET
C#/.NET/.NET Core优秀项目和框架2024年10月简报
C#/.NET/.NET Core优秀项目和框架2024年10月简报
|
13天前
|
人工智能 开发框架 安全
C#/.NET/.NET Core技术前沿周刊 | 第 13 期(2024年11.11-11.17)
C#/.NET/.NET Core技术前沿周刊 | 第 13 期(2024年11.11-11.17)
|
14天前
|
网络协议 Unix Linux
精选2款C#/.NET开源且功能强大的网络通信框架
精选2款C#/.NET开源且功能强大的网络通信框架
|
14天前
|
程序员 C# 图形学
全面的C#/.NET自学入门指南
全面的C#/.NET自学入门指南
|
2月前
|
JSON C# 开发者
C#语言新特性深度剖析:提升你的.NET开发效率
【10月更文挑战第15天】C#语言凭借其强大的功能和易用性深受开发者喜爱。随着.NET平台的演进,C#不断引入新特性,如C# 7.0的模式匹配和C# 8.0的异步流,显著提升了开发效率和代码可维护性。本文将深入探讨这些新特性,助力开发者在.NET开发中更高效地利用它们。
36 1
|
2月前
|
存储 消息中间件 NoSQL
Redis 入门 - C#.NET Core客户端库六种选择
Redis 入门 - C#.NET Core客户端库六种选择
63 8

热门文章

最新文章