名前空間をコンテナのように考えます。ちょうど他のコンテナと同様に、あなたはそれに物を入れることができます。名前空間の利点は、プログラムが大規模になったときに、特に同じファイルにすべてを入れる必要なく、機能をまとめてグループ化できることです。名前空間は、名前を別々にする方法でもあります。ロンドン道路とハイストリートの両方に18番のロンドン道路と18番のハイストリートがあります。例えば
、MyNamespace
はMyClass
とMyClass
あなたがMyNamespace
ためusing
ステートメントを追加する必要が別の名前空間からMyMethod
を使用するにはMyMethod
namespace MyNamespace
{
class MyClass
{
void MyMethod() {}
}
}
が含まれているが含まれています。これはさらに一歩MyOtherNamespace
はMyClass
とMyClass
がMyMethod
MyOtherNamespace
もMyClass
とMyClass
はまた、あなたがusing
ステートメントを追加する必要が別の名前空間からMyMethod
を使用するように、前と同じようにMyMethod
namespace MyOtherNamespace
{
class MyClass
{
void MyMethod() {}
}
}
が含まれている含まれている含まれている含まれていると想像撮影
MyOtherNamespace
あなたはMyNamespace
とMyOtherNamespace
の両方からMyMethod
を使用したい場合は、あなたが持っている場合、同じルールが適用されるこの
MyNamespace.MyClass.MyMethod();
MyOtherNamespace.MyClass.MyMethod();
のような呼び出しに名前空間名を追加することにより、使用するかをあなたのプログラムに伝える必要があります同じ名前空間で同じメソッドを持つ複数のクラス - あなたが名前空間に関連するノートで
MyFirstClass.MyMethod();
MySecondClass.MyMethod();
を含める必要はありませんという違い、あなたも012を使用して、複数のファイル間のクラスを分割することができますキーワード。たとえば、あなたは彼らが同じで、両方のケースでは、あなたがこれはひどいです。この
MyClass.MyMethod();
MyClass.MyOtherMethod();
のようなメソッドを呼びたいのなら、この
機能的には、この
を回すことができます'public static void OpenPort();'名前空間で直接? –
私はメソッドがクラスの内部で行われるべきであり、名前空間の中で直接行われるべきではないと思います。クラス 'partial'をマークした場合、確かにメソッドは同じ名前空間を呼び出すことができます。 –
'OpenPort'関数を' Port'という静的クラスに入れて、 'Port.OpenPort(); 'と呼んでください。 –