简而言之:我认为Java反模式是一份不可或缺的资源,无论对于初学者还是专业人士。但是我尚未找到类似于C#的内容。因此,我将开放这个问题作为社区wiki,并邀请每个人分享他们在这方面的知识。由于我刚开始接触C#,所以我非常感兴趣,但不能从一些反模式开始 :/
抛出
或者,更好的方法是:
使用
以下是我认为特别适用于C#而不适用于其他语言的答案。
我只是复制/粘贴了这些内容!也可以看看这些评论。
抛出NullReferenceException
抛出错误的异常:
if (FooLicenceKeyHolder == null)
throw new NullReferenceException();
属性 vs. 公共变量
在类中使用公共变量时,请改用属性。
除非该类是一个简单的数据传输对象。
没有意识到bool是一种真实类型,而不仅仅是一种约定
if (myBooleanVariable == true)
{
...
}
或者,更好的方法是:
if (myBooleanVariable != false)
{
...
}
像这样的结构经常被 C
和 C++
开发人员使用,其中布尔值的概念只是一种惯例(0 == false,其他任何值都是true);在C#或其他具有真正布尔类型的语言中,这是不必要的(也不可取的)。
使用 using()
没有适当地使用 using
:
object variable;
variable.close(); //Old code, use IDisposable if available.
variable.Dispose(); //Same as close. Avoid if possible use the using() { } pattern.
variable = null; //1. in release optimised away. 2. C# is GC so this doesn't do what was intended anyway.