ホームページ > バックエンド開発 > C++ > c# `sead`ディレクティブは名前空間の内側または外側にある必要がありますか?

c# `sead`ディレクティブは名前空間の内側または外側にある必要がありますか?

Susan Sarandon
リリース: 2025-01-31 16:11:09
オリジナル
590 人が閲覧しました

Should C# `using` Directives Be Inside or Outside Namespaces?

c#

命令の最良の位置:命名スペースまたは名前スペースの中にありますか? usingC#コードを書くとき、特にStylecopがそれらを名前空間に入れることを提案する場合、命令の配置はしばしば混乱します。これはランダムに規定されているようですが、2つの方法にはわずかな違いがあります。

例を見てみましょう。 using

さて、

ファイルを追加すると、コンテンツは次のとおりです。 File1.cs

コンパイラは、外部
<code class="language-csharp">using System;
namespace Outer.Inner
{
    class Foo
    {
        static void Bar()
        {
            double d = Math.PI;
        }
    }
}</code>
ログイン後にコピー
命令の代わりに

名前付きスペースを優先し、File2.cs故障への参照を引き起こします。これは、コンパイラが最初に最近の閉じた名前スペースのシンボルを分析しようとするためです。

ただし、以下に示すように、名前空間ステートメントに
<code class="language-csharp">namespace Outer
{
    class Math
    {
    }
}</code>
ログイン後にコピー
命令を入力する場合:

Outer usingコンパイラは、最初にSystem.Math命名スペースでシンボルを検索し、次に

命名スペースを検索して、

の参照を正しく分析します。 using

この動作はネストされた命名スペースにも適用できることに注意してください。コンパイラは常に命名スペースの最も内側の層を検索します。たとえば、の場合、
<code class="language-csharp">namespace Outer.Inner
{
    using System;
    class Foo
    {
        static void Bar()
        {
            double d = Math.PI;
        }
    }
}</code>
ログイン後にコピー

System>> destionの位置にOuterを追加すると、System.Mathコンピレーション障害が発生します。

したがって、競合の名前を避け、コードの正確性を確保するためには、Foo命令を名前空間に配置することをお勧めします。 namespace Outer

以上がc# `sead`ディレクティブは名前空間の内側または外側にある必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート