Как мне получить доступ к значению enum в этом классе? - PullRequest
0 голосов
/ 03 мая 2020

Я довольно новый программист, пытающийся сделать довольно простую игру, используя MonoGame в C#. Моя проблема в том, что я хочу получить доступ к значению enum (не уверен, что это правильный термин) в этом другом классе, но я не знаю как. Я предполагаю, что вы могли бы сделать что-то вроде: return Game1.State.EnterHighScore; или сделать ссылку на объект, но это не сработало для меня, вероятно, потому что я делаю это неправильно. Буду признателен за помощь!

Извините, я не знаю, как правильно отформатировать код, но я постарался сделать его максимально понятным:

//File name: GameElements.cs
//...
    //...
        //...
            //...   
                    if (e.CheckCollision(player)) 
                    {
                        player.IsAlive = false;
                        return /*EnterHighScore*/; // I want to return the enum value EnterHighscore, 
                                                   //..which is in the class Game1
                    }
            //...
        //...
    //...
//...  
//File name: Game1.cs
//...
    public class Game1 : Game
    {
        enum State { PrintHighScore, EnterHighScore }; // I want to access EnterHighScore.
        //...
    }
//...

1 Ответ

1 голос
/ 03 мая 2020

Держите свой enum вне класса. Затем вы можете напрямую вернуться из любого метода в любом классе в том же пространстве имен. Например:

public enum GameState
{
    EnterHighScore,
    EnterSomeOtherScore,
    EnterLooserScore
};

public class SomeClass
{
    public GameState CheckGame()
    {
        return GameState.EnterHighScore;
    }
}

Если вы храните enum внутри какого-либо класса, тогда область действия enum будет только для этого класса.

...