Есть ли способ заставить пользователя использовать параметр из предопределенного набора? - PullRequest
0 голосов
/ 17 января 2020

Мне было интересно, было ли возможно, если бы я мог заставить метод заставить вас либо использовать что-то из заданного списка.

Пример того, что я пытаюсь сделать:


public static List<string> languages = new List<string>() { "cs", "de", "en", "es", "fr", "it", "jp", "nl", "ru", "zh" };

// Im trying to enforce the translate() method to make the parameter "transTo" one of the strings in the 
// list. I might be dumb and new but is this possible in c#?

public static void Translate(string path, string key, string transTo)
{
   ...
}

Совершенно новый способ переполнения стека, скажите мне, что я сделал неправильно :I

1 Ответ

1 голос
/ 17 января 2020

Это идеальное использование Enum:

enum LanguageCode
{
   cs,
   de,
   en
}

, а затем принять enum:

public static void Translate(string path, string key, LanguageCode languageCode)
{
   ...
}

и, конечно, вызов метода:

Translate(path, myKey, LanguageCode.cs);

еще лучше: вы можете использовать описания или словарь, чтобы сделать выбор более дружелюбным, но также соответствовать вашим внутренним требованиям:

public enum Language
{       
    English,
    Japanese,
    Spanish
}

private Dictionary<Language, string> LanguageMap = new Dictionary<Language, string>()
{
    {Language.English, "es"},
    {Language.Japanese, "jp"},
    {Language.Spanish, "es"}
}

, а затем в целом, он будет использоваться как:

 callExternalApi(stringToTranslate, LanguageMap[languageCode]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...