У меня есть метод, в котором у меня есть несколько необязательных логических параметров, различным свойствам объекта будет присвоено значение, основанное на том, какие параметры являются истинными.
Вот метод для контекста:
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);
но, похоже, ничего не работает. Есть ли правильный синтаксис для выполнения того, что я пытаюсь? Даже если синтаксис инициализации не очень неудобен, когда есть только три логических параметра, это может быть более применимо, если есть десятки.