Grundlagen
Ein Namespace ist so etwas ähnliches wie ein Ordner - nur halt für Code anstatt für Dateien.Jeder Code in C# muss in einem Namespace sein. Namespaces können verschachtelt werden. Wenn man in VC# eine neue Klasse erstellt, wird automatisch ein Namespace mit folgendem Aufbau "dazugedichtet":
ProjektName.OrdnerNameDerDatei
Dieser Name darf (und sollte ;) ) geändert werden.
Um auf einen Namespace zuzugreifen hat man verschiedene Möglichkeiten.
Beispiel 1:
namespace BGE
{
public class A {...}
public class B {A myAInstance;}
}
Um das Zeug ausserhalb des Namespaces zu benutzen gibt es zwei Möglichkeiten:
- Man benutzt die
using
-Direktive um den Namespace bekannt zu machen.- oder man schreibt explizit den Namen des Namespace vor die benutzten Klassen/Variablen/Etc.
Beispiel 2:
using BGE;
namespace MyProgram
{
class C {A myClassInstance;}
}
namespace MyProgram
{
class C {BGE.A myClassInstance;}
}
using
-Direktive benutzt oder den Namen des Namespace direkt hinschreibt.Verschachtelung
Namespaces können ineinander verschachtelt werden. Ein Namespace NB in einem anderen Namespace NA hat Zugriff auf alles, was in NA UND NB ist. NA hat jedoch keinen expliziten Zugriff auf Zeug in NB.Beispiel 3:
namespace BGE.Managers {...}
entsprichtnamespace BGE
{
namespace Managers
{...}
}
BGE
auf Managers
zuzugreifen, schreibt man einfach Managers.xyz
, um AUSSERHALB von BGE
auf Managers
zuzugreifen, schreibt man BGE.Managers.xyz
(bzw. using BGE.Managers
)Namespaces sind partiell, es muss nicht alles in der selben Datei stehen.
Using Direktive
Mit derusing
-Direktive kann man einiges anstellen. Das wichtigste ist wohl, einen Namespace direkt verfügbar zu machen:using BGE;
using BGE.Managers;
using MyGame.Managers
using BGE.Managers
using MM=MyGame.Managers
using BM=BGE.Managers
Meine Abkürzungen
Ich habe für mich folgende Standards gewählt:(using)
Xna = Microsoft.Xna.Framework;
XGfx = Microsoft.Xna.Framework.Graphics;
XInput = Microsoft.Xna.Framework.Input;
SysCol = System.Collections.Generic;
Keine Kommentare:
Kommentar veröffentlichen