隐式(默认)值与显式值

Joa*_*nge 5 .net c#

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

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)

Meh*_*ari 11

不,我认为依靠默认值是可以的.明确地分配它们只会使代码混乱.此外,它的优点是可以更轻松地区分您指定非默认值的字段.

  • 我同意.我在屏幕上为大脑处理的信息越少越好. (2认同)

Ric*_*dle 7

我总是把它们放进去,因为它证明你已经考虑过那些成员的初始价值应该是什么.

bool isCool;
Run Code Online (Sandbox Code Playgroud)

可能意味着"我知道这在启动时并不酷",或者它可能意味着你没有想到它.

bool isCool = false;
Run Code Online (Sandbox Code Playgroud)

显然是一个刻意的决定.


Arn*_*hea 3

我不认为这是一个坏习惯,因为默认值是使用该语言工作的开发人员应该知道/被迫学习的东西。

我想到的唯一缺点是不列出默认值可能会导致人们永远不会查看初始化值。如果它被初始化为默认值以外的其他值,可能需要一些注意。