0

「りんご」という名前のクラスがあります。クラスが「Apples」というフォルダーの.csファイルにあるとしましょう

Project
   -Apples
       -Apples.cs
   -main.cs

これを書かずに参照するにはどうすればよいですか:

Main.cs

Apples.Apples.testVar = 2;

そしてただ書く

Main.cs:

Apples.testVar = 2;

これを行う方法はありますか、それとも我慢するか、フォルダー名を変更する必要がありますか?

4

4 に答える 4

2

これをファイルの先頭に置きます-

using Apples = Apples.Apples;

于 2013-02-01T19:08:51.383 に答える
2

Visual Studio にフォルダーがあり、その中にクラスを作成すると、Visual Studio (および場合によっては他の IDE) によって、そのフォルダーから作成されたファイルの名前空間にフォルダーの名前が自動的に追加されます。

これは、名前空間がそのままである必要があるという意味では決してありません。「フォルダ」は純粋に整理用であり、コードのコンパイルには関与しません。ファイル名も実際のコードには関係ありません。Apples.cs を見ると、次のように変更するだけです。

namespace Apples.Apples
{
     //....

namespace Apples
{
    //...

これは単に、IDE が必要なものに対する仮定として使用している規則です。それに従う必要はありません。

編集:少なくとも、フォルダー名に焦点を合わせているため、ここで誤解していると思います-これはコードには何の意味もなく、あなたにとってのみ重要です。さらに、前述のように、名前空間名とクラス名の間のあいまいさに悩まされる場合があります。他の回答で述べたように、クラスに名前空間と同じ名前を付けることはお勧めできません。

デフォルトでは、プロジェクトのグローバル名前空間はプロジェクトと同じ名前になります。したがって、プロジェクトに「Apples」という名前を付けてから、「Apples」というフォルダーを作成し、そのフォルダー内に「Apples」というクラスを作成した場合、名前空間のチェーンに従ってクラスに移動します。

Apples.Apples.Apples

フォルダー/ファイル名に基づいてこれを行う必要があるという結論を導き出していますが、実際には名前空間/クラスです。ここにはいくつかのオプションがありますが、最終的には、混乱と混乱を取り除くために、これらの「りんご」の 2 つまたは 3 つすべてを変更する必要があります。ファイル名やフォルダ名を変更しても機能しません。クラス名と少なくとも 1 つの名前空間名を変更する必要があります。より適切なもの:

AppleProject.Apples.AppleBase

または次のように簡単です:

Apples.Apple // removed the extra namespace in the middle
于 2013-02-01T19:51:27.077 に答える
1

using ステートメントで "Apples" に別名を付けることができます。

using Apples = Apples.Apples.testVar;

または、読みやすくしたいものは何でも。

于 2013-02-01T19:08:10.967 に答える
1

はい、C# を使用している場合は、現在のコード ファイルの一番上にある参照を使用して追加するだけです。

例えば:

Apples.Apples を使用します。

現在のプロジェクトにない場合は、プロジェクト セットへの参照があることを確認する必要があります。

于 2013-02-01T19:08:51.967 に答える