长话短说:我发现Java反模式是一个不可或缺的资源。初学者和专业人士一样。我还没有为C#找到这样的东西。因此,我将以社区wiki的形式提出这个问题,并邀请大家分享他们对此的知识。由于我是C#新手,我对此非常感兴趣,但不能从一些反模式开始:/
以下是我发现的C#语言的具体答案,而不是其他语言。
我只是复制/粘贴了这些!也可以考虑看一下这些评论。
抛出错误的异常:
if (FooLicenceKeyHolder == null)
throw new NullReferenceException();类中的公共变量(改为使用属性)。
,除非类是一个简单的数据传输对象。
if (myBooleanVariable == true)
{
...
}或者,更好的
if (myBooleanVariable != false)
{
...
}C和C++开发人员经常使用这样的构造,其中布尔值的概念只是一种约定(0 == false,任何其他东西都是真的);在C#或其他具有真正布尔值的语言中,这是不必要的(或可取的)。
在适当情况下不使用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.发布于 2009-10-07 05:30:01
错误地重新抛出异常。若要重新抛出异常:
try
{
// do some stuff here
}
catch (Exception ex)
{
throw ex; // INCORRECT
throw; // CORRECT
throw new Exception("There was an error"); // INCORRECT
throw new Exception("There was an error", ex); // CORRECT
}发布于 2009-10-07 05:25:41
GC.Collect()来收集垃圾收集器而不是信任它。
发布于 2009-10-07 05:55:42
我看到这一点太多了,无论是在Java还是C#.
if(something == true){
somethingelse = true;
}加分,如果它也有
else{
somethingelse = false;
}https://stackoverflow.com/questions/1529604
复制相似问题