14

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

我的项目由 C# 和 C++ 代码组成,差异真的让我很恼火。我想为所有来源设定一个通用标准,但我想知道这是否会有任何缺点。

4

8 回答 8

19

如果您正在为这种差异寻找一个完全合乎逻辑、有充分理由的理由,我认为您找不到。尽管围绕制表符与空格发生了许多激烈的战争,但实际上并没有真正的赢家(否则战争就会结束)。

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

PS:空格规则:)

于 2009-03-07T14:02:00.330 回答
4

当然,标签是唯一正确的方法。Tab 可以做所有空格可以做的事情。空格不能做很多选项卡可以做的事情。

选项卡允许轻松更改缩进和轻松导航,而无需按箭头键太多次,也不必保持控制。

真正的解决方案是让编辑器能够导航和制表缩进的文件,就像它是空格缩进一样,如果用户愿意的话。该文件将与选项卡一起保存。非常简单和包容每个人。

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

于 2010-06-08T11:14:15.620 回答
1

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

于 2009-03-07T14:02:35.023 回答
1

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

您可以根据喜好随意更改它。

于 2009-03-07T14:58:49.867 回答
1

随心所欲,我通常在 C++ 中使用制表符。那些查看我的代码的人无论如何都使用默认的 VS 设置 RE 选项卡,因此没有真正的拉动来用空格替换它。我不确定它现在是什么样子,但是当 F# 处于起步阶段(即,MSR 的早期版本)时,您需要在#light 代码中使用空格,否则编译器会抱怨空格很重要。

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

于 2009-03-07T15:10:02.973 回答
0

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

为什么不?

不开心就换吧。

于 2009-03-07T15:04:05.233 回答
-1

空格使使用键盘浏览代码变得更加困难。

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

如果您在任何 HTML、CSS 或 JavaScript 中为制表符使用空格,那么您做错了。html/css/js 没有制表符与空格的争论——要么是制表符,要么是无知。客户端代码未编译,并且 IIS 默认未打开压缩 - 多余的空白 = 多余的脂肪。

回到过去,VB6 没有让我们选择使用制表符,但现在我们可以而且应该 - 如果您不这样做,您的代码会让您看起来仍然在坚持老式的方式。

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

于 2010-03-19T15:40:38.007 回答
-3

制表符与空格的争论有一个简单的答案:制表符。制表符允许您指定缩进,而不是强迫其他人接受它。鉴于标签大小只是个人喜好,一个用户不应该强迫其他人遵循他/她的显示选项。

为什么 C++ 和 C# 之间的区别:不知道。但是,知道选项卡在逻辑上是一个更好的选择,只需将 C#(实际上是所有语言)更改为选项卡,瞧。

于 2011-09-12T14:52:40.943 回答