En Load
Methode kann verwendet werden, um viele verschiedene Arten von Inhalten zu laden, einschließlich solcher wie Bilder und Sounds. Daher kann sie Instanzen verschiedener Typen zurückgeben (z. B. Ihre Texture2d
y Effect
).
Es gibt zwei Möglichkeiten, eine Methode zu erstellen, die dies leisten kann. Erstens, und am einfachsten, können Sie eine Object
die die Basisklasse für jeden Typ in der .NET- und XNA-Welt ist.
public object Load(string path) { /*...*/}
müssten Sie es so verwenden:
Texture2D texture = (Texture2D)Content.Load("Textures//Road");
Die zweite Möglichkeit ist die Verwendung von Generika. Mit Generika können Sie das Casting für den Benutzer übernehmen und so seinen Code vereinfachen. Eine generische Version dieser Methode wäre:
public T Load<T>(string path)
{
return (T)Load(path);
}
Sie sind immer noch mit der alten Last, aber Sie führen die Besetzung (was auch immer Typ, dass T ist) vor der Rückgabe des Wertes.
Generics sind nützlich, da man mit ihnen typsicheren Code erstellen kann, ohne viele typspezifische Methodenversionen zu erstellen, wie
public Texture2d LoadTexture2d(string path)
{
return (Texture2d)Load(path);
}
public Effect LoadEffect(string path)
{
return (Effect)Load(path);
}
//500 more versions omitted for brevity