Есть ли способ заставить пользователя использовать параметр из предопределенного набора?

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

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


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 ответ


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

enum LanguageCode
{
   cs,
   de,
   en
}

и затем примите перечисление:

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]);

Есть идеи?

10000