Вы можете использовать отражение для получения типа объекта класса, а затем вызывать метод обновления после того, как он задал конкретный класс.
фрагмент кода в C#, возможно, вы поймете, что делать. Здесь object
в классе Shared и установите объект в свой класс Game1 или Game2. то доступ, а затем использование небольшого отражения для работы с объектом - это время выполнения.
public static class GameCommon
{
public static object currentGame;
}
/// Использование .GetType()
GameCommon.currentGame = new Game1();
if (GameCommon.currentGame != null)
{
Type type = GameCommon.currentGame.GetType();
if (type.Name == "Game1")
{
((Game1)GameCommon.currentGame).Update();
}
else if (type.Name == "Game2")
{
((Game2)GameCommon.currentGame).Update();
}
}`
Другое лучший подход это Interface
полиморфизм и ИМХО это правильный способ реализации ..
Проверьте это:
public static class GameCommon
{
public static IGame currentGame;
}
public interface IGame
{
void Update();
}
public class Game1 : IGame
{
public void Update()
{
Console.WriteLine("Running:Game1 Updated");
}
}
public class Game2 : IGame
{
public void Update()
{
Console.WriteLine("Running:Game2 Updated");
}
}`
Назовите его как:
GameCommon.currentGame = new Game1();
if (GameCommon.currentGame != null)
{
GameCommon.currentGame.Update();
}
GameCommon.currentGame = new Game2();
GameCommon.currentGame.Update();
Console.ReadKey();`
Надеется, что это поможет вам ..
+1 для правильной информации и suggestion..but ора несколько относительно экстрагента ссылочного типа назначенного объекта класса ... –