C # 8 ввел сопоставление с образцом, и я уже нашел хорошие места для его использования, как этот:
private static GameType UpdateGameType(GameType gameType)
{
switch (gameType)
{
case GameType.RoyalBattleLegacy:
case GameType.RoyalBattleNew:
return GameType.RoyalBattle;
case GameType.FfaLegacy:
case GameType.FfaNew:
return GameType.Ffa;
default:
return gameType;
}
}
, который затем становится
private static GameType UpdateGameType(GameType gameType) => gameType switch
{
GameType.RoyalBattleLegacy => GameType.RoyalBattle,
GameType.RoyalBattleNew => GameType.RoyalBattle,
GameType.FfaLegacy => GameType.Ffa,
GameType.FfaNew => GameType.Ffa,
_ => gameType;
};
Однако вы можете видеть, что яТеперь нужно упомянуть GameType.RoyalBattle
и GameType.Ffa
дважды.Есть ли способ обрабатывать несколько случаев одновременно в сопоставлении с образцом?Я думаю о чем-то вроде этого, но это не правильный синтаксис:
private static GameType UpdateGameType(GameType gameType) => gameType switch
{
GameType.RoyalBattleLegacy, GameType.RoyalBattleNew => GameType.RoyalBattle,
GameType.FfaLegacy, GameType.FfaNew => GameType.Ffa,
_ => gameType;
};
Я также пробовал такие вещи, как
[GameType.RoyalBattleLegacy, GameType.RoyalBattleNew] => GameType.RoyalBattle
или
GameType.FfaLegacy || GameType.FfaNew => GameType.Ffa
, нони один не действителен.
Также не нашел ни одного примера по этому вопросу.Это даже поддерживается?