日期:2014-05-17  浏览次数:21008 次

一些用C#在软件开发中的最佳做法
使用适当的命名约定

你的代码的一致性,你应该更喜欢适当的命名约定。这是非常易于维护的代码,如果使用一致的命名所有的解决方案。下面是一些。NET开发人员一般都遵循命名约定:
在声明变量的同时,一定要使用骆驼的情况下(A单词的首字母小写,后续的每一个字部分资本化的第一个字母)。
使用帕斯卡(A单词的第一个字母大写,每个后续的文字部分资本化的第一个字母)命名格式,同时宣告属性。
避免使用全部大写或小写的名称,属性,变量或方法名。声明const变量时,全部使用大写。
切勿使用以数字字符开头的名称。
总是喜欢有意义的名字,你的类,属性,方法等,为您维护的代码在未来,这将是非常有用的。例如,“P”不给一类的应有之义。你会发现它很难知道的类。但是,如果你使用了“人”,你会很容易地理解它。
不要建立一个不同的名称,不同的资本化。这是一个非常糟糕的做法。这不会是有用的,而开发的代码,因为你不知道什么是“人”一类的,什么是“人”类!!但是,从上述情况下,它可以是非常容易理解的“人”是“人”类的实例变量。
不要使用相同的名称。NET Framework中使用。人们谁是新的给你的代码有很大的困难,很容易理解。
避免添加前缀或后缀的标识符。虽然在一些指引,他们使用“M_”和其他一些他们使用“_”作为前缀的变量声明。我认为这是没有那么多有用的。但是,这取决于您的组织的编码实践。这一点是矛盾的,基于各种组织,它是没有严格指导。
始终使用“我”作为前缀的接口。用于定义界面,这是一个普遍的做法。
一定要添加“例外”作为您的自定义异常类的后缀。这将提供更好的能见度到你的异常类。
从来没有前缀或后缀的类名,属性名称。这将不必要地增加属性的名称。如果“ 姓 “是” 人 “类的属性,你可以很容易地识别它直接从这个类。没有需要到写“ PersonFirstname的 “或” FirstnameOfPerson“的。
前缀“ 是 “,” 有 “或” 能 “布尔属性,如” IsVisible “,” HasChildren “,” CanExecute “。这些应有之义的属性。
不要加前缀为您的控件,而不是写适当的名称,识别控制。
值类型和引用类型之间做出选择

当你需要创建一个类型,首先要问自己一个问题:“你想要什么,为什么你要吗?”。如果你能回答你的问题,你可以决定你要使用之间的类型。如果你想存储你的数据,使用值类型,当你想创建一个实例的类型定义的行为,使用引用类型。是不是多态,而值类型,引用类型可以是。值类型是最有效的引用类型的内存利用率,并产生更少的帮助碎片和垃圾。如果你想将值传递到一个方法的实现,决定你想要做什么,并根据您的要求,决定之间的值类型和引用类型。引用类型变量的使用,实际上改变了原来的价值,但使用值类型,将创建一个副本的原始变量,并通过在整个方法。因此,它可以保护你的原始值的意外改变。让我们来看看他们真实的例子。在下面的代码中,我们通过变量“ 我 “的价值类型和方法实现递增10。因为它是按值传递,你会看到原始值“ 5 “作为输出的程序代码。

请务必使用属性而不是公共变量

这背后的原因是,它,在OOPS环境使你的代码正确封装。通过使用getter和setter方法,您可以限制用户直接访问成员变量。您可以限制设定值明确从而使您的数据免受意外的变化。此外,物业让您更容易为您的数据验证。

需要的时候使用可空数据类型

有时候,你可能需要存储的一个整数,双或布尔变量的值,则返回null。所以你怎么能这样做呢?正常的声明并没有允许你存储的空值。C#现在可空数据类型的特点。在声明中只是一个小的变化。这就是它!你是好样去存储空值。只有你必须使用“?”修饰符。你必须把它放在刚刚结束的类型。要定义一个整数,你通常会做以下声明:

不想运行时的常量在编译时间常数

运行时的常量总是比编译时间常数的首选。在这里,你可能会问,什么是运行时不变的,什么是编译时间常数。运行时的常量是那些在运行时进行评估,并宣布与关键字“ 只读 “。在另一边,编译时间常数是静态的,在编译时评估,并宣布与关键字“ 常量 “

喜欢的String.Format()或StringBuilder字符串连接

是一个可变对象作为字符串,该字符串中的任何操作将创建一个新的对象。如果要连接多个字符串 s ,它始终是更好的String.Format()方法或串联的StringBuilder类的使用。

正确利用的try / catch / finally块

是的,妥善运用尝试 / 捕捉 / 最后块。如果你知道你写的代码可能会抛出一些异常,使用的try / 赶上这段代码块来处理异常。如果你知道,第五行10行代码可能会抛出异常,最好是只用“的尝试 / catch块来包装该行的代码。周围的几行代码,不必要的尝试 / 捕捉会减慢你的应用程序。有时候,我发现周围的人每一种方法的尝试 /catch块这实在是很糟糕,降低性能的代码。所以从现在开始,只在需要的时候使用。最后使用的块调用后清理的任何资源。如果你正在做的任何数据库调用,关闭连接在该块。最后块你的代码是否执行或不正确执行。因此,正确地利用它来 清除资源。
只捕获该异常,你可以处理

这是主要的一个。人们总是使用通用的异常类,捕捉任何异常,既不是为您的应用程序,也没有系统的性能。只捕获那些你期望并责令其相应。最后结束时,如果你想添加的通用异常捕捉任何其他的未知异常。这给你一个正确的方法来处理异常。假设,你的代码抛出NullReferenceException异常或ArgumentException。如果你直接使用的异常类,这将是非常困难的,在你的应用程序来处理。但是,的正确捕获异常,你可以处理的问题很容易。
使用IDisposable接口

使用IDisposable的接口从内存中释放所有的资源。一旦你在你的类中实现IDisposable接口的接口,你会得到一个的Dispose()方法有。编写代码来释放资源。如果你实现了IDisposable接口,你可以初始化你的类是这样的:


------解决方案--------------------
好吧,虽然不知道你想干吗
------解决方案--------------------
楼主这是在分享?
------解决方案--------------------
你想干什么,写了这么多,直接发到博客里面不好吗
------解决方案--------------------
奉献精神 坚决不能沉!
------解决方案--------------------
写成博客不就好了嘛
------解决方案--------------------
写成博客更容易看一些,受教了
------解决方案--------------------
微软在推出c#时就推出了编码规则。msdn里面东西真的很多很好。