c# - 用于方法的命名可选参数
问题描述
我有一个方法,其中有几个可选的布尔参数,对象的不同属性将根据哪些参数为真而被赋予一个值。
这是上下文的方法:
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;
}
但是,有时我希望第二个或第三个布尔参数为真,但我无法将其指定为我想要切换的参数,而无需明确说明前面参数的真或假。
如果我想初始化一个AutoPatientLookup
具有性别属性值的对象,我必须这样调用它:
InitializeTestPatientInfo(false,false,true);
我尝试了一些类似的东西
InitializeTestPatientInfo(Gender = true);
和
InitializeTestPatientInfo(bool Gender = true);
但似乎没有任何效果。是否有正确的语法来完成我正在尝试的事情?尽管当只有三个布尔参数时初始化语法不是很不方便,但如果有几十个,这可能更适用。
解决方案
您要使用的语法是:
InitializeTestPatientInfo(Gender: true);
推荐阅读
- html - 应用 tbody 时的区别 td:nth-of-type(3){ border-bottom-color: transparent; } 和 tr.noborder td{ 边框底部:透明;} 在 CSS 中
- php - PDO lastInsertid() 返回 false,即使我的查询运行良好。给出 0000 代码错误
- ballerina - 如何在 Ballerina 中迭代字符串?
- javascript - 按属性值查找对象属性的索引
- python - 如何在 pyspark 数据框中创建序列号列?
- android - 如何在 ConstraintLayout 中居中一对视图?
- jq - 尝试从 json 中提取数据时 jq 挂起
- cloudflare-apps - 我可以使用 Cloudflare Apps 创建 SRV 记录吗?
- postgresql - SELECT name from table where name in array and value = 0 || 1 取决于名称
- pycharm - 有没有办法让 pycharm 总是安装一些模块?