c#如果或声明指定主题

c#如果或声明指定主题,c#,C#,我正在尝试对if或带有else if的语句进行编码,以根据应用程序检查的RAG(红琥珀绿)状态更改电子邮件主题标题 if语句检查groupbox背景色的条件。此时,语句仅返回绿色,除非所有应用程序均为琥珀色,并且主题更改为琥珀色或相同的红色 我正在寻找一个失败,然后改变主题 我所编写的代码如下: if ((App1.BackColor == Color.Green) | (App2.BackColor == Color.Green) | (App3.BackColor == Color.Gree

我正在尝试对
if
或带有
else if
的语句进行编码,以根据应用程序检查的RAG(红琥珀绿)状态更改电子邮件主题标题

if
语句检查groupbox
背景色的条件。此时,语句仅返回绿色,除非所有应用程序均为琥珀色,并且主题更改为琥珀色或相同的红色

我正在寻找一个失败,然后改变主题

我所编写的代码如下:

if ((App1.BackColor == Color.Green) | (App2.BackColor == Color.Green) | (App3.BackColor == Color.Green) | (App4.BackColor == Color.Green))
{
    oMailItem.Subject = "Application Start Of Day Status GREEN " + Date;
}

else if ((App1.BackColor == Color.Orange) | (App2.BackColor == Color.Orange) | (App3.BackColor == Color.Orange) | (App4.BackColor == Color.Orange))
{
    oMailItem.Subject = "Application Start Of Day Status AMBER " + Date;
}

else if ((App1.BackColor == Color.Red) | (App2.BackColor == Color.Red) |  (App3.BackColor == Color.Red) | (App4.BackColor == Color.Red))
{
    oMailItem.Subject = "Application Start Of Day Status Red " + Date;
}
我对使用visualstudio用C#编写代码相当陌生,到目前为止,我已经找到了我遇到的大多数问题的答案,但我已经在这里和其他网站上搜索了这个问题。
任何帮助都将不胜感激。

您还不完全清楚希望代码做什么。如果你想要所有东西都是绿色的,除非一个是琥珀色的,而琥珀色的除非一个是红色的,你需要清楚地说出来


如果任何应用程序背景颜色为绿色,则运行“主题绿色”,整个循环终止。如果您希望琥珀色或红色条件将主题从绿色更改为其颜色,请取出else语句,给出三个单独的If语句。这样,您的手机会变成绿色,如果一个是琥珀色,则会变成琥珀色,如果一个是红色,则会变成红色。

我会颠倒逻辑,让您检查其中是否有红色,然后检查其中是否有琥珀色,最后如果没有红色或琥珀色,则必须是绿色(当然取决于您的情况)


如果这些颜色中的任何一种为绿色,则您拥有的
IF
块将停止设置日期状态为绿色。因此,它只会进入橙色部分,如果没有任何项目是绿色的,至少有一个是橙色的。只有当全部为红色时,它才会进入红色部分

所以


如果你想让它以另一种方式下降,也就是说,如果有红色的,那么你需要做两件事中的一件。要么反转if语句,使红色语句位于顶部,要么去掉
ELSE
部分,将它们保留为3个不同的
if
语句。

您可能想要的是
|
,而不是
|
@rightfold,因为没有任何条件(大概)会改变结果有副作用。出于习惯,我仍然会使用
|
,但看看
|
上的MSDN文档,它仍然被视为逻辑OR,因为操作数是布尔数。当然,“习惯”听起来也不是坚持做某事的好理由。克里斯,谢谢你的帮助,两个答案都完全符合我的需要。我删除了else语句,并将其保留为3个独立的If语句。再次感谢
// If any of them are red, then code red
if ((App1.BackColor == Color.Red) | (App2.BackColor == Color.Red) |  (App3.BackColor == Color.Red) | (App4.BackColor == Color.Red))
{
    oMailItem.Subject = "Application Start Of Day Status Red " + Date;
}
// Otherwise, check if any are amber
else if ((App1.BackColor == Color.Orange) | (App2.BackColor == Color.Orange) | (App3.BackColor == Color.Orange) | (App4.BackColor == Color.Orange))
{
    oMailItem.Subject = "Application Start Of Day Status AMBER " + Date;
}
// Everything's fine so we give it a green
else
    oMailItem.Subject = "Application Start Of Day Status GREEN " + Date;