为什么Visual Studio对C#和C ++使用不同的缩进设置?

时间:2009-03-07 13:49:47

标签: visual-studio indentation

对于C#,Visual Studio默认使用4个空格,而对于C ++,它是硬标签。为什么会这样?为什么会有所不同?

我的项目包含C#和C ++代码,差异真让我烦恼。我想为所有来源设置一个通用标准,但我想知道这是否有任何缺点。

8 个答案:

答案 0 :(得分:15)

如果你正在寻找一个完全合乎逻辑的,有充分理由证明这种差异,我认为你不会找到一个。尽管标签与空间周围发生了许多火焰战争,但实际上还没有真正的胜利者(否则战争就会结束)。

解决这个问题的方法是通过.vssettings文件。当我第一次使用VS 2005时,我在每种语言中设置了标签/空格默认值。您可以通过工具 - >执行此操作选项 - >文字编辑器 - > (C#/ C ++)。然后我将选项卡设置导出到.vsssettings文件中。每当我在新机器上安装VS时,我只需导入该文件,我就有了快乐的空格/标签设置。

PS:空格规则:)

答案 1 :(得分:5)

当然标签是唯一正确的方法。 Tab可以完成空间可以做的所有事情。空格不能做任何标签可以做的事情。

标签允许轻松更改缩进和轻松导航,而无需按箭头键太多次,并且必须保持控制。

真正的解决方案是让编辑器能够导航并标记缩进文件,就好像它是空格缩进的,如果用户更喜欢的话。该文件将与选项卡一起保存。非常简单,适应每个人。

c#2010中的问题是我找不到任何选项来将其更改为标签。

答案 2 :(得分:1)

我怀疑有任何缺点,因为C ++语法不区分选项卡和空格。 顺便说一句,我认为设置代码样式标准的最佳方法是导出VS设置并与团队共享。

答案 3 :(得分:1)

C#默认4个空格背后的原因是无论谁打开文件缩进都是一样的。

您可以根据喜好自由更改。

答案 4 :(得分:1)

只要随意使用,我通常在C ++中使用制表符。那些查看我的代码的人都使用默认的VS设置RE标签,所以没有真正的拉动用空格替换它。我不确定它现在是什么样的,但是当F#处于起步阶段时(即早期从MSR中释放出来)你需要在#light代码中使用空格,否则编译器会抱怨空白很重要。

不同的人有不同的偏好,我知道有些人虔诚地使用空格,另一方面我知道更多人使用标签。

答案 5 :(得分:0)

  
    

对于C#,Visual Studio默认使用4个空格,而对于C ++,它是硬标签。为什么会这样?

  

为什么不呢?

如果你不开心就改变它。

答案 6 :(得分:-1)

空格使用键盘导航代码变得更加困难。

对于空格,大多数人会使用四个空格,但有些人会使用两个或三个空格。使用选项卡,希望其代码以两个空格标出的人可以简单地将制表符设置为显示为两个空格,并且编码样式保持一致。

如果您在任何HTML,CSS或JavaScript中使用空格作为标签,那么您做错了。对于html / css / js,没有标签与空格的争论 - 它既可以是标签,也可以是无知。客户端代码未编译,IIS默认情况下没有打开压缩 - 多余的空格=多余的脂肪。

回过头来,VB6没有给我们选择使用标签,但现在我们可以而且应该 - 如果你不这样做,你的代码会让你看起来仍然坚持老派的方式。 / p>

所以停止编码就像1999年一样。使用标签。为孩子们做。

答案 7 :(得分:-3)

tabs vs spaces参数有一个简单的答案:tabs。选项卡允许您指定缩进,同时不强制其他人使用缩进。鉴于标签大小仅仅是个人偏好,一个用户不应该强迫其他人按照他/她的显示选项。

为什么C ++和C#之间存在差异:没有任何线索。但是,知道选项卡在逻辑上是更好的选择,只需将C#(实际上是所有语言)更改为选项卡即可。