相关疑难解决方法(0)

为什么FxCop认为将字段初始化为默认值是不好的?

在为字段分配默认默认值时(此处为bool的false),FxCop说:

Resolution   : "'Bar.Bar()' initializes field 'Bar.foo' 
               of type 'bool' to false. Remove this initialization 
               because it will be done automatically by the runtime."
Run Code Online (Sandbox Code Playgroud)

现在,我知道代码是int a = 0或bool ok = false正在引入一些冗余,但对我而言,它似乎是一个非常非常好的代码实践,我的老师在我看来坚持正确的代码实践.

不仅性能损失很小,更重要的是:依赖于默认值依赖于每个程序员的知识,使用一段代码,在默认的每种数据类型上.(约会时间?)

说真的,我觉得这很奇怪:应该保护你不要犯下太明显错误的程序,建议在这里制作一个,只是为了提高性能?(我们在这里讨论初始化代码,只执行一次!那些关心那么多的程序员当然可以省略初始化(并且应该使用C或汇编程序:-)).

FxCop在这里犯了一个明显的错误,还是有更多呢?

两个更新:

  1. 这不仅仅是我的观点,而是我在大学(比利时)教过的.并不是说我喜欢使用一个 论证广告verecundiam,而只是为了表明这不仅仅是我的观点.关于那个:

  2. 道歉,我刚刚发现了这个:

    我应该总是/永远/永远不会将对象字段初始化为默认值吗?

fxcop

24
推荐指数
3
解决办法
1521
查看次数

默认值初始化字段是多余的

我真的可以真正信任.NET来初始化字段(比如整数,结构等)吗?如果我仍然想要初始化这些字段怎么办 - 可能会产生什么后果?

c#

13
推荐指数
2
解决办法
3769
查看次数

显式声明默认字段值是不好的做法吗?

重复问题:

我应该总是/永远/永远不会将对象字段初始化为默认值吗?





环境:Visual Studio 2008 w/Resharper 4.1 w/32bit .NET Framework 3.5

Resharper报告说

默认值初始化字段是多余的

替代文字

明确声明默认字段值是不好的做法吗?
我发现明确声明默认值更具可读性.

顺便说一下,这不是这个问题的重复 是默认参数在OOP中的不良做法吗?

[更新]对于那些想知道在哪里更改Resharper 4.1设置以将警告更改为提示/建议的人; 更改以下设置 替代文字

将改变Visual Studio 2008
替代文字

c# resharper

5
推荐指数
2
解决办法
4949
查看次数

隐式(默认)值与显式值

依赖隐式默认值是不好的做法,例如:

class Node
{
    int red;
    int green;
    int blue;

    bool grayscale;

    Node next;
}
Run Code Online (Sandbox Code Playgroud)

而不是明确地设置它们:

class Node
{
    int red = 0;
    int green = 0;
    int blue = 0;

    bool grayscale = false;

    Node next = null;
}
Run Code Online (Sandbox Code Playgroud)

.net c#

5
推荐指数
3
解决办法
806
查看次数

标签 统计

c# ×3

.net ×1

fxcop ×1

resharper ×1