我以前使用 Style Cop 来确保人们遵循既定的代码标准,然后根据我们的需要对其进行配置。几天来,我一直在使用带有默认设置的 Style Cop 进行尝试,但我对某些事情感到有些困惑。例如,如果我声明一个变量,我真的很想说明它是什么类型。
int foo;
或者
Bar foo = new Bar();
Style Cop 希望您经常使用var
关键字。我了解您、编译器和 IDE 可以通过实例化确定类型。
var foo = 1; // Makes foo and int
var foo = new Bar(); // Makes foo a Bar
当声明和实例化在一个步骤中完成时,它是相当可见的。
还有一些我不太喜欢 Style Cop 似乎喜欢的东西,所以我基本上只是想知道标准 Style Cop 配置强制执行的编码风格有多普遍,它起源于哪里?
注意:var
如 hvd 所述,下面的这种用法无效。var
让我立刻感觉好多了;)。我把它留在里面,因为它在原来的问题中
但是如果你有一些晦涩难懂的东西,比如
var foo
... bunch of code ...
foo = getLatestData();
foo
变成什么并不明显。但是看foo
你的声明不会变得更聪明。相反,您必须查看getLatestData
函数的声明。
我觉得这种var
方法有点模糊了一切。如果您声明它foo
是一个int
. 然后你知道那foo
总是一个. 它不依赖于它从什么获得数据。像这样的东西很可能会给你两种不同类型的 foo。int
var foo;
...
if(status == 0) {
foo = getLatestData();
}
else {
foo = getOtherData();
}
没有什么强制要求这两个函数必须返回相同的类型,foo
因此可以变成不同的东西。当您自己编写所有代码并像这样包含它时,可能很容易跟踪。但是,如果它是一个 API 或插件库,那么如果外部 3rd 方开发人员冷冷地指定类型,那将是一场噩梦,foo
因为在这种情况下您无法确定如何处理它。