代码样式问题在这里.
我看了一下这个问题,询问.NET CLR是否真的总是初始化字段值.(答案是肯定的.)但令我感到震惊的是,我不确定让它做到这一点总是一个好主意.我的想法是,如果我看到这样的声明:
int myBlorgleCount = 0;
Run Code Online (Sandbox Code Playgroud)
我有一个很好的想法,程序员希望计数从零开始,并且可以,至少在不久的将来.另一方面,如果我只是看到:
int myBlorgleCount;
Run Code Online (Sandbox Code Playgroud)
如果0是合法或合理的值,我没有真正的直接想法.如果程序员刚开始阅读和修改它,我不知道程序员是否打算在设置值之前开始使用它,或者他们是否期望它为零等等.
另一方面,一些相当聪明的人和Visual Studio代码清理实用程序告诉我删除这些冗余声明.对此有何普遍共识?(有共识吗?)
我将此标记为语言不可知,但是如果有一个奇怪的情况,那么特别好的想法是针对特定语言的反对,这可能值得指出.
编辑:虽然我确实认为这个问题与语言无关,但它显然不适用于像C这样没有进行值初始化的语言.
编辑:我很欣赏约翰的回答,但这正是我不想要的.我知道.NET(或Java或其他)将完成这项工作并一致且正确地初始化值.我所说的是,如果我看到代码修改了之前未在代码中明确设置的值,我作为代码维护者,不知道原始编码器是否意味着它是默认值,或者只是忘记设置值,或者期望将其设置在其他地方,等等.