ホームページ  >  記事  >  バックエンド開発  >  C# の名前空間の基本 (2)

C# の名前空間の基本 (2)

黄舟
黄舟オリジナル
2016-12-19 10:32:161229ブラウズ

NAMESPACE では、エイリアスを使用して既存の NAMESPACE またはその他の種類のデータを参照することもできます。

エイリアスの使用形式は次のとおりです:

using alias = 既存のタイプ;

例: using soholife = System;


いくつかの例を通して理解を深めましょう:

namespace N1.N2

{

class A {}

}

namespace N3

{

using A = N1.N2.A;

class B: A {}

}

ここで、N3 では、 A は N1 です。 N2.A はエイリアスであり、N3.B は N1.N2.A! を継承します。同様に、次のメソッドを使用して同じ効果を実現することもできます。

class B: R.A {}

}

そういえば、最初に次の例を見てみましょう:

namespace N1.N2

{


class A {}

}

名前空間 N3

{

クラス A {}


}

名前空間 N3

{

using A = N1.N2.A;


}

このように書くと、何か問題があるでしょうか?

答えはもちろん「はい、違います」です!エイリアスは NAMESPACE 内で一意である必要があり、上記の

class a{} がすでにあるため、using A =N1.NE.A; を使用しているので、何か問題が発生するはずです。しかし、次のようにする必要がある場合:


B =N1.N2.A; を使用すると、結果はどうなるでしょうか?友達の皆さん、自分で考えてみましょう!多くは言いません!

終わったと思ったのですが、まだはっきりと説明できていないことがまだあることに気づきました、ははは、もう行くしかないようです。後で家に帰りましょう。問題から始めましょう:

名前空間 N1.N2

{


クラス A {}

}

名前空間 N3

{

using R = N1.N2;

}

名前空間 N3

{

class B: R.A {}

}

上の例では、どう思うかわかりませんが、正しいでしょうか?間違い?

私が答えるとしたら、それは間違いです! (あはは、私は過去に多肢選択式の質問をする癖がついていました。そのような質問に対する答えはどれも間違いです! でも、その理由は説明できません!)

本当に、上記のプログラム、私はそう思いました最初に見たときは正しかったのですが、後で知りました。 。 。 、ああ、まだまだ本を読まないといけないようです!

別のユニットでエイリアスを使用する場合、そのエイリアスはそれが配置されているユニット (NAMESPACE など) でのみ使用でき、他のユニットでは使用できないことがわかります。 2 つの N3 で R を実行すると、R が不明であることが表示されます。もちろん、この方法を使用したい場合でも、次のように N3 の外側にエイリアス R を記述する方法があります。

using R = N1.N2;


namespace N3

{

class B: R.A {}

}

さて、ここまでお話しましたが、すべてを理解できれば、NAMESPACE についていくつかの概念を理解できるはずです。これができれば、私の目標は達成されたことになります!

上記は、C# の名前空間の基礎 (2) の内容です。さらに関連する内容については、PHP 中国語 Web サイト (www.php.cn) に注目してください。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。