Как создать функцию, позволяющую выбрать одно из трех значений параметров? - PullRequest
0 голосов
/ 19 мая 2010

Итак, у меня есть string returnType, который разработчик может выбрать = в JSON, XML или PRINT_R. Как ограничить его выбор и заставить VS 2008 или более позднюю версию подсказать ему, какое значение (из этих 3) string returnType может быть? (.net 3.5)

Ответы [ 4 ]

3 голосов
/ 19 мая 2010

Вы должны использовать перечисление вместо строки. Использование строк для чего-то подобного в любом случае крайне уродливо - для этого даже потребуется сравнение строк во время выполнения вместо гораздо более дешевого сравнения целых или даже битовых значений при использовании enum (который является числом).

2 голосов
/ 19 мая 2010
public enum DataFormat{ JSON=0, XML=1, PRINTR=2 } 

public ReturnType SomeFunction( DataFormat format )
{
    if( DataFormat.JSON == format ) 
        return ....
    //etc
}
2 голосов
/ 19 мая 2010

Если я правильно понял вопрос, enum - это ключевое слово, которое вы ищете. Итак, вы бы объявили тип данных, который представляет доступные возвращаемые типы:

public enum DataFormatType { Json, Xml, PrintR }

, а затем в параметрах вашей функции измените string returnType на DataFormatType returnType. Это позволит Visual Studio предлагать значения (это называется «Завершение кода» или «Intellisense»), и единственными действительными значениями являются значения, указанные в enum.

Cheers, Alex

0 голосов
/ 19 мая 2010

Вы можете сделать оператор switch для строки.Затем используйте значение по умолчанию для всех недопустимых случаев.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...