C# 等效于 VB.Net select 情况 true
C# equivalent of the VB.Net select case true
我正在尝试寻找与 VB.Net Select Case True
等效的 C#,我过去发现它非常有用。在 VB.Net 中,我可以写(一个任意示例,其中 属性 是对象类型并且传递布尔值或 class 表达式的实例):
Select Case True
Case value Is Nothing:
Throw New Exception("Invalid value.")
Case value.ToString() == "True":
moValue = value
Case value.ToString() == "False":
moValue = value
Case value.GetType().Name = "Expression":
moValue.DataTypeCode = "BOOLEAN"
moValue = value
Case Else:
Throw New Exception("Invalid value.")
End Select
显然,我知道 switch 语句,但据我所知,case 值不能是表达式。虽然 C# 从业者可能对上面的内容犹豫不决,但我发现它非常有用,因为它按照分析的优先顺序将我的测试用例排列在列表中。
是否有一个 C# 构造,我可以在这样的列表中有一堆测试用例,并处理第一个计算结果为 true 的,而不必嵌套一堆 if...else?
在 C# 中,你会写这是一个 if/else if/else
语句:
if (value == null)
{
throw new Exception("Invalid value");
}
else if (value.ToString() == "True" || value.ToString() == "False")
{
moValue = value;
}
else if (value.GetType().Name == "Expression")
{
moValue.DataTypeCode = "BOOLEAN";
moValue = value;
}
else
{
throw new Exception("Invalid value");
}
您可以使用switch statement with when
clauses执行此操作,但请不要这样做。
顺便说一句,那个稍微冗长的案例:
else if (value.ToString() == "True" || value.ToString() == "False")
也可以写成更简洁的模式:
else if (value.ToString() is "True" or "False")
我正在尝试寻找与 VB.Net Select Case True
等效的 C#,我过去发现它非常有用。在 VB.Net 中,我可以写(一个任意示例,其中 属性 是对象类型并且传递布尔值或 class 表达式的实例):
Select Case True
Case value Is Nothing:
Throw New Exception("Invalid value.")
Case value.ToString() == "True":
moValue = value
Case value.ToString() == "False":
moValue = value
Case value.GetType().Name = "Expression":
moValue.DataTypeCode = "BOOLEAN"
moValue = value
Case Else:
Throw New Exception("Invalid value.")
End Select
显然,我知道 switch 语句,但据我所知,case 值不能是表达式。虽然 C# 从业者可能对上面的内容犹豫不决,但我发现它非常有用,因为它按照分析的优先顺序将我的测试用例排列在列表中。
是否有一个 C# 构造,我可以在这样的列表中有一堆测试用例,并处理第一个计算结果为 true 的,而不必嵌套一堆 if...else?
在 C# 中,你会写这是一个 if/else if/else
语句:
if (value == null)
{
throw new Exception("Invalid value");
}
else if (value.ToString() == "True" || value.ToString() == "False")
{
moValue = value;
}
else if (value.GetType().Name == "Expression")
{
moValue.DataTypeCode = "BOOLEAN";
moValue = value;
}
else
{
throw new Exception("Invalid value");
}
您可以使用switch statement with when
clauses执行此操作,但请不要这样做。
顺便说一句,那个稍微冗长的案例:
else if (value.ToString() == "True" || value.ToString() == "False")
也可以写成更简洁的模式:
else if (value.ToString() is "True" or "False")