12

「名前空間を使用する」ディレクティブが C# で受け入れられる理由を知りたいのですが、C++ では受け入れられません。C++ と C# が異なることは承知していますが、私の推測では、C++ と C# はほぼ同じファミリーに由来し、名前空間の解決には同じ考え方を使用する必要があります。C++ と C# の両方に、名前空間の競合を回避するためのエイリアス キーワードがあります。

「名前空間を使用する」ディレクティブの使用を受け入れ、C++ができない問題を回避するC#の行間で読んでいないことを、誰でも指摘できますか。

4

5 に答える 5

5

私にとって、それはサポートツールに帰着します。Intellisense、クイック クラス ルックアップ (F1 キー)、および Visual Studio のリファクタリング オプションにより、必要な参照ルックアップ機能が提供されます。

また、C# にはクラス内のすべてのメソッドがあります。名前空間レベルの関数はありません。

于 2013-07-23T22:36:24.647 に答える
3

一般に、C# と C++ の違いは、コンパイル単位の処理方法と指定方法です。

C++ はヘッダー ファイルを使用してクラス宣言を発行し、このクラスが実装 (定義) されるコンパイル ユニットを必要とします。using namespace <xxx>一部のクライアント コードからステートメントを含めると、名前空間の衝突やあいまいさが簡単に発生する可能性があるため、C++ ではヘッダー ファイル内のステートメントを使用しないことを強くお勧めします。クラス宣言では、他の名前空間 ( を含む) から取得したいものを明示的に指定する必要がありますstd

C# には、using namespace <xxx>ステートメントの使用を少し容易にする単一のコンパイル ユニットがあります。それでも、面倒な入力を避けたい場合は、インポートされた名前空間にエイリアスを設定することをお勧めします。ステートメントを .cs ファイルに配置usingすると、あいまいな定義が発生する可能性もあります。

于 2013-07-23T22:43:14.847 に答える