Benutzer mit den meisten Antworten
auf Funktionen in übergeordneten Klassen zugreifen.

Frage
-
Antworten
-
M.,
Letztlich musst Du den Namespace von Game1 eben entweder davorschreiben, oder mit using oben deklarieren.
Hier eine genauere Beschreibung:
[Compilerfehler CS0246]
http://msdn.microsoft.com/de-de/library/w7xf6dxs.aspxWenn Assembly, in der Game1 implementiert ist, sichtbar ist (ggf. über Verweise eingebunden), reicht normal ein
STRG+Punkt [Enter]
im Visual Studio C# Editor aus, zur automatischen Erzeugung des using-statements aus.
ciao Frank- Als Antwort markiert Mansent Montag, 4. April 2011 16:37
Alle Antworten
-
Hallo M.,
XNA Foren sind eigentlich eher woanders, aber da Du jetzt eine allgemeine C# Frage stellst ....
Antwort:
Es kommt vielleicht noch ein wenig auf die Schachtelung und die Sichtbarkeit etc. an, aber im Allgemein gibt es (u.a.) folgende Standards.... :
- Benötigte andere Klasseninstanzen zum Beispiel über Konstruktor übergeben.
- In eine öffentliche Eigenschaft.
- In eine Eigenschaft einer öffentlichen statischen Klasse kapseln und von dort abrufen, je nach Singleton-Sematik.
- und viele weitere Möglichkeiten.
- Heutzutage oft auch über DI (und z.B. MEF) auto-importiert.[guide to C# | Guide | Klassen und Strukturen]
http://www.guidetocsharp.de/Classes.aspx[game development - Content Manager in another class XNA - Stack Overflow]
http://stackoverflow.com/questions/2391055/content-manager-in-another-class-xna
ciao Frank -
Hi,
es ist grundsätzlich egal wo sich die klassen befinden in einem projekt. Daher hier einfach mal ein kleines Beispiel
// Customer.cs public class Customer{ public String FirstName {get; set;} public String LastName {get; set;} public String Name{ get{ return String.Format("{0}, {1}", this.LastName, this.FirstName); } } //Printer.cs public class Printer{ public void PrintCustomer(){ var customer = new Customer(){ FirstName = "Andrew", LastName = "Smith" }; Console.WriteLine(customer.Name); } }
Beantwortet dies deine Frage?
Es soll Fälle geben, in denen die Suche bereits die Antwort auf deine Frage weiß. -
Hallo M.,
- Wie könnte das dann praktisch aussehen [...]
nun, ich habe ja jetzt viele Vorschläge gemacht.
Du nennst nun eine Methode und keine Eigenschaft, aber ok, das geht auch.
Ein ganz simples Beispiel, wie man darauf zugreift (hier einfach über eine Instanziierung der Klasse) :
namespace XNADemo { public class Game1 { public int X() { return 5; } } public class Klasse { public Klasse() { Game1 g1 = new Game1(); System.Console.WriteLine(g1.X()); } } }
ciao Frank -
Hallo Thorsten,
- es ist grundsätzlich egal wo sich die klassen befinden in einem projekt. ...
da sollte man etwas mit der Pauschalierung aufpassen, ein C# Architekt würde sich jetzt verhemend gegen diese Aussage ausprechen ;-)
Was Du meinst ist ja, bezüglich der Kompilierung (ACK) - das sollte dann dazugesagt werden, wenn schon nicht zitiert wird.
Ansonsten ordnet man die Klassen natürlich schon in seinem Projekt gemäß Zugehörigkeiten.
Ich sage es nur noch mal dem OP, damit das nicht falsch verstanden wird.
ciao Frank -
Hallo Thorsten,
- es ist grundsätzlich egal wo sich die klassen befinden in einem projekt. ...
da sollte man etwas mit der Pauschalierung aufpassen, ein C# Architekt würde sich jetzt verhemend gegen diese Aussage ausprechen ;-)
Was Du meinst ist ja, bezüglich der Kompilierung (ACK) - das sollte dann dazugesagt werden, wenn schon nicht zitiert wird.
Ansonsten ordnet man die Klassen natürlich schon in seinem Projekt gemäß Zugehörigkeiten.
Ich sage es nur noch mal dem OP, damit das nicht falsch verstanden wird.
ciao Frank
Es soll Fälle geben, in denen die Suche bereits die Antwort auf deine Frage weiß. -
M.,
Letztlich musst Du den Namespace von Game1 eben entweder davorschreiben, oder mit using oben deklarieren.
Hier eine genauere Beschreibung:
[Compilerfehler CS0246]
http://msdn.microsoft.com/de-de/library/w7xf6dxs.aspxWenn Assembly, in der Game1 implementiert ist, sichtbar ist (ggf. über Verweise eingebunden), reicht normal ein
STRG+Punkt [Enter]
im Visual Studio C# Editor aus, zur automatischen Erzeugung des using-statements aus.
ciao Frank- Als Antwort markiert Mansent Montag, 4. April 2011 16:37