C# 如何在不使用if语句的情况下找到哪个条件为真
我有两个条件 我想知道的是哪个条件是真的,两个条件都是真/假,或者只有一个条件是真的 问题是如果我使用C# 如何在不使用if语句的情况下找到哪个条件为真,c#,loops,if-statement,C#,Loops,If Statement,我有两个条件 我想知道的是哪个条件是真的,两个条件都是真/假,或者只有一个条件是真的 问题是如果我使用if语句,它会增加代码量,并且看起来不像一个健壮的解决方案 C#中是否存在可以一次检查和判断的条件或循环 有谁能为我提供一个干净的替代方案吗 情景: string garage = getGarageCost(id) string helmet = getHelmetCost(id) if(garage == "") { string selected
if
语句,它会增加代码量,并且看起来不像一个健壮的解决方案
C#中是否存在可以一次检查和判断的条件或循环
有谁能为我提供一个干净的替代方案吗
情景:
string garage = getGarageCost(id)
string helmet = getHelmetCost(id)
if(garage == "")
{
string selected = "dropdown is not selected"
}
else if(Convert.ToInt32(garage) >= 1)
{
string selected = "dropdown is selected"
return selected value;
}
if(helmet == "")
{
string selected = "dropdown is not selected"
}
else if(Convert.ToInt32(helmet) >= 1)
{
string selected = "dropdown is selected"
return selected value;
}
*编辑:*
我有两个下拉列表,如果选中,将所选值传递到页面
我必须检查下拉列表,然后传递值。如果未选择任何内容,则应传递字符串“未选择任何内容”
如果选中,则应进行一些计算
问题是我必须做5个if语句,因为有5种可能性
一个
开关语句怎么样
int garage = getGarageCost(id)
int helmet = getHelmetCost(id)
switch (garage) {
case 0:
do some alternative work;
break;
default:
everything else;
break;
}
switch (helmet) {
case 0:
do some alternative work;
break;
default:
everything else;
break;
}
pass data to view;
如果两个“dothis”相同,那么可以将int转换为int?用这个逻辑:
int value = getGarageCost(id) ?? getHelmetCost(id);
if (value != null)
{
dothis()
}
else
{
// nothing selected in both lists
}
.你需要让你的例子更清楚-目前你正在将int
与null
进行比较,这从一开始就不起作用…删除了asp.net mvc
标记,因为我看不出你的问题与这项技术有什么关系。小注:1)。我想你的问题是你需要非空的车库和头盔。2). int
永远不能为null
,这些方法是否返回int?
/可为null
?对于初学者来说,车库和头盔永远不会为null,因为它们是int的。如果它们是int?我真的看不出有什么办法。为什么要删除这两条if语句?将其传递给view代码>可以在所有if语句的末尾执行,因为您可以在所有条件下执行该操作。而是否在所有情况下都执行相同的操作?单个?
表示强制可为空的类型定义。??
运算符或null coalesce运算符如果不为null,则使用左手项,如果为null,则使用右手项作为替换项。我还将进行一些前端验证,以确保下拉框具有值。