Использованные именованные необязательные параметры для метода - PullRequest
0 голосов
/ 11 мая 2018

У меня есть метод, в котором у меня есть несколько необязательных логических параметров, различным свойствам объекта будет присвоено значение, основанное на том, какие параметры являются истинными.

Вот метод для контекста:

public static AutoPatientLookup InitializeTestPatientInfo(bool SSN = false, bool PatientNumber = false, bool Gender = false)
{
    AutoPatientLookup TestAPIParameters = new AutoPatientLookup();
    TestAPIParameters.FirstName = "First";
    TestAPIParameters.LastName = "Last";
    TestAPIParameters.DOB = "4/9/1953";
    TestAPIParameters.PracticeID = 11071;

    if (SSN)
    {
        TestAPIParameters.SSN = 000010281;
    }
    if (PatientNumber)
    {
        TestAPIParameters.PatientNumber = 458;
    }
    if (Gender)
    {
        TestAPIParameters.Gender = "F";
    }

    return TestAPIParameters;
}

Однако иногда я хочу, чтобы второй или третий логический параметр имел значение true, но я не могу назначить его в качестве параметра, который я хочу переключать без явного указания истинного или ложного значения для предыдущих параметров.

Это, если я хочу инициализировать AutoPatientLookup объект, который имеет значение для его свойства пола, я бы назвал его следующим образом:

InitializeTestPatientInfo(false,false,true);

Я пробовал что-то вроде

InitializeTestPatientInfo(Gender = true);

и

InitializeTestPatientInfo(bool Gender = true);

но, похоже, ничего не работает. Есть ли правильный синтаксис для выполнения того, что я пытаюсь? Даже если синтаксис инициализации не очень неудобен, когда есть только три логических параметра, это может быть более применимо, если есть десятки.

Ответы [ 3 ]

0 голосов
/ 11 мая 2018

Вы можете присвоить свой параметр, который вы назначаете:

Сделайте это вместо

InitializeTestPatientInfo(Gender: true);
0 голосов
/ 11 мая 2018

Синтаксис, который вы хотите использовать:

InitializeTestPatientInfo(Gender: true);
0 голосов
/ 11 мая 2018

Попробуйте

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