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

もちろん、タブが唯一の正しい方法です。タブはスペースができることすべてを行うことができます。スペースは、タブが実行できることの多くを実行できません。

タブを使用すると、矢印キーを何度も押す必要がなく、コントロールを保持しなくても、インデントを簡単に変更したり、ナビゲーションを簡単に行うことができます。

実際の解決策は、ユーザーが希望する場合、エディターがスペースインデントされているかのようにインデントされたファイルをナビゲートしてタブで移動できるようにすることです。ファイルはタブ付きで保存されます。とてもシンプルでみんなを収容します。

C#2010の問題は、タブに変更するオプションが見つからないことです。

于 2010-06-08T11:14:15.620 に答える
1

C#のデフォルトの4つのスペースの背後にある理由は、ファイルを開く人は誰でもインデントが同じになるためです。

好みに応じて自由に変更できます。

于 2009-03-07T14:58:49.867 に答える
1

私は通常、C++でタブを使用します。私のコードを見る人はすべて、とにかくデフォルトのVS設定のREタブを使用するので、それをスペースに置き換えるための実際のプルはありません。現在の状況はわかりませんが、F#が初期段階(つまり、MSRからのかなり初期のリリース)のときは、#lightコードでスペースを使用する必要がありました。そうしないと、コンパイラーは空白が重要であると文句を言います。

好みは人によって異なります。スペースを忠実に使用している人もいますが、タブを使用している人もいます。

于 2009-03-07T15:10:02.973 に答える
1

C++ の文法ではタブとスペースが区別されないため、欠点があるとは思えません。ところで、コード スタイルの標準を設定する最良の方法は、VS 設定をエクスポートしてチームで共有することだと思います。

于 2009-03-07T14:02:35.023 に答える
0

C#の場合、Visual Studioはデフォルトで4つのスペースを使用しますが、C++の場合はハードタブです。なんでそうなの?

なぜだめですか?

あなたが幸せでないなら、それを変えてください。

于 2009-03-07T15:04:05.233 に答える
-1

スペースを使用すると、キーボードを使用してコード内を移動するのが難しくなります。

スペースがある場合、ほとんどの人は4つのスペースを使用しますが、2つまたは3つのスペースを使用する人もいます。タブを使用すると、コードを2つのスペースでタブアウトしたい人は、タブ文字を2つのスペースまで表示するように設定するだけで、コーディングスタイルは一貫したままになります。

HTML、CSS、またはJavaScriptのタブにスペースを使用している場合、それは間違っています。html / css/jsについてのtabs-vs-spacesの議論はありません-それはタブか無知のどちらかです。クライアント側のコードはコンパイルされておらず、IISではデフォルトで圧縮がオンになっていない-余分な空白=余分な脂肪。

昔、VB6はタブを使用する選択肢を私たちに与えませんでしたが、今はそうすることができ、そうすべきです-そうでない場合、あなたのコードはあなたがまだ昔ながらの方法にしがみついているように見えます。

したがって、1999年のようにコーディングを停止します。タブを使用します。子供たちのためにそれをしなさい。

于 2010-03-19T15:40:38.007 に答える
-3

タブとスペースの引数には、簡単な答えがあります: タブです。タブを使用すると、他のユーザーにインデントを強制することなく、インデントを指定できます。タブのサイズは個人的な好みに過ぎないため、あるユーザーが他のユーザーに自分の表示オプションに従うように強制することはできません。

C++ と C# の違いの理由: 手掛かりがありません。ただし、論理的にはタブの方が適切なオプションであることがわかっているので、C# (および実際にはすべての言語) をタブに変更するだけで、出来上がりです。

于 2011-09-12T14:52:40.943 に答える