5

私はC#が初めてで、これに関する情報が見つからないようですので、ここで質問します。

名前空間のクラスは宣言する必要がありますか?

using System;
public class myprogram
{
    void main()
    {
        // The console class does not have to be declared?
        Console.WriteLine("Hello World");
    }
}

名前空間を使用していない場合は、クラスを宣言する必要があります

class mathstuff
{
    private int numberone = 2;
    private int numbertwo = 3;
    public int addhere()
    {
        return numberone + numbertwo;
    }


using System;
public class myprogram
{
    void main()
    {
        // the class here needs to be declared.
        mathstuff mymath = new mathstuff();
        Console.WriteLine(mymath.addhere());
    }
}

私はこれを正しく理解していますか?

4

2 に答える 2

9

名前空間は、クラスがどのコンテキストで生きているかを明確にする方法にすぎません。Ralph さん、あなた自身の名前を考えてみてください。この世界には多くのラルフがいますが、そのうちの 1 人があなたです。あいまいさを取り除くもう 1 つの方法は、姓を追加することです。ラルフが 2 人いれば、あなたのことを話す機会が増えます。

同じことがクラスにも当てはまります。クラスAClassを定義し、別のクラスを定義する必要がある場合AClass、2 つを区別する方法はありません。名前空間はその「姓」になります。クラスを持たなければならない方法ですが、同じ名前を持つ 2 つの異なるクラスを区別することができます。

あなたの質問に答えるために、それは「宣言する必要がない」とは何の関係もありません。コードを書くのは簡単です。

例えば:

using System;

public class myprogram
{
    void main()
    {
        // the class here needs to be declared.
        Console.WriteLine("blah");
    }
}

using System;の名前空間を宣言する必要がないためですConsole。名前空間Consoleに存在する使用可能なものは 1 つだけです。名前空間をSystem宣言しない場合は、どこにあるかを説明する必要があります。このような。using System;Console

System.Console.WriteLine("blah");

MSDN から:

名前空間キーワードは、スコープを宣言するために使用されます。この名前空間スコープにより、コードを整理し、グローバルに一意の型を作成する方法を提供します。

詳細については、MSDN の namespace を確認してください。

于 2013-03-17T16:57:29.727 に答える
5

「名前空間なしでクラスを宣言できますか?」という意味だと思います。はい、できglobalます。名前空間と呼ばれます。

class BaseClass
{
}

class SubClass : global::BaseClass
{
}

ただし、これは非常に悪い習慣であり、本番アプリケーションでは絶対に実行しないでください。

于 2013-03-17T16:56:26.983 に答える