锁定老帖子 主题:.Net最佳实践 (23-32)
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-08-31
23. 在 Visual Studio 中,针对每个文件类型创建自己的模板。你可以 在模板中 包含你的公司名称(例如 HP ), 版权信息等等。 你可以在这个文件夹下查看或者编辑 Visual Studio 中的文件模板: C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\ItemTemplatesCache\CSharp\1033 。(这个文件夹有 C# 的模板, 但是你可以容易的找到其他语言对应的文件夹。 )
24. 避免存在非常大 的文件。如果单个文件有超过 1000 行的代码,那这就是个 需要 重构 的很好的例子。从逻辑上将它们 拆分两个或者多个类。
25. 避免公开的方法和属性,除非他们真正需要从 这个类的外部来访问。如果他们 只需要在同一个 assembly 里面访问的话,使用 “ internal ” 。
26. 避免传递太多的参数到一个方法中。如果你有大于 4 到 5 个参数, 这就是一个很好的例子来定义一个类或者结果。
27. 如果你有一个方法返回 一个集合,没有数据 返回的时候 返回空集合而不要返回 null 。例如,如果你有一个方法返回一个 ArrayList ,总是要返回一个有效的 ArrayList 。如果你没有数据返回 ,那么就返回一个包含 0 条数据的 ArrayList 。这样对 调用的应用程序很容易,只需要检查 “ 条数 ” 而不需要对 “null” 进行额外的检查。
28. 使用 AssemblyInfo 文件来填写信息,录入版本号,描述,公司名称,版权通知等。
2 9. 按照逻辑的方式在合适的文件夹中组织你的文件。使用两级的文件夹 组织结构。你可以 在根目录下 有最多 10 个文件夹 ,每个文件夹有最多 5 个子文件夹。如果你有太多的 文件夹而不能放到上面提到的两级组织 结构中,你可能需要重构到多个 Assembiy 中。
30. 保证你有一个很好的日志 类,配置后可以用来记录错误、警告或者 跟踪 。 如果你配置成记录错误,它应该只记录错误。但是如果你配置 成跟踪,它应该记录所有的(错误、警告和跟踪)。你的日志类应该 写成 这样 的方式 :在将来 不需要修改应用程序的任何其他部分, 你 就 可以 通过 简单的修改 将日志记录到 Windows 事件日志、 SQL Server ,或者给管理员发邮件, 或者记录到一个文件等。
31. 如果 你正在打开数据库连接,套接字,文件流等等,总是要在 finally 代码块里面关闭 它 们。 这将确保 在打开连接以后即使有异常发生也可以在 finally 代码块中安全 的关闭它们。如果使用了 Idisposable 接口,请包含这个对象到 using ()中。
32. 当你不得不 在一个循环中操作字符串对象的时候 使用 StringBuilder 类代替 String 。 String 对象在 .Net 中以一种 怪异的方式工作。每次你追加一个 字符串,它实际上抛弃了老的字符串对象而重新创建一个新的对象, 这样的方式是一个相对昂贵的操作。
Consider the following example:
考虑 下面的例子:
public string ComposeMessage (string[] lines) { string message = String.Empty;
for (int i = 0; i < lines.Length; i++) { message += lines [i]; }
return message; }
In the above example, it may look like we are just appending to the string object ‘message’. But what is happening in reality is, the string object is discarded in each iteration and recreated and appending the line to it.
在上面的例子中, 看上去好像我们只是添加到字符串对象 “messa ge” 。但是事实上发生的是,这个字符串对象 在每个迭代中都会 被抛弃 , 被重新创建 ,然后添加一行到这个对象里面。
If your loop has several iterations, then it is a good idea to use StringBuilder class instead of String object.
如果你的循环有若干个迭代,那么使用 StringBuilder 类代替 String 对象是个好主意。
See the example where the String object is replaced with StringBuilder.
看下面这个例子,其中 String 对象被替换成了 StringBuffer 。
public string ComposeMessage (string[] lines) { StringBuilder message = new StringBuilder();
for (int i = 0; i < lines.Length; i++) { message.Append( lines[i] ); }
return message.ToString(); } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
浏览 1613 次