if语句的说明

时间:2019-04-02 04:14:39

标签: c#

我是C#的新手。看起来下面的代码在C中。请在下面的if语句中解释一下

if ((!csentry.get_Item("UR.Action").get_IsPresent() ? false : csentry.get_Item("UR.Action").get_Value() == "Disable"))

3 个答案:

答案 0 :(得分:5)

它细分为以下内容。这是您可读性的1000倍

var urlAction = csentry["UR.Action"];

if (urlAction.IsPresent && urlAction.Value == "Disable")
{
     // then do stuff
}

注意 :请参阅@madreflection在帖子中的评论,以了解为什么可能会造成如此严重的破坏

  

它是已编译的代码,然后反编译回C#,而无需   访问引用的程序集。这通常发生在ILSpy中;当你   添加引用的程序集,并且类型可用,   属性元数据可以将其转换为属性访问


其他资源

?: Operator (C# Reference

  

条件运算符?:,通常称为三元条件运算符   运算符,计算一个布尔表达式,然后返回的结果   根据是否为布尔值,计算两个表达式之一   表达式的计算结果为真或假

答案 1 :(得分:0)

如果if语句基本上表明是否满足条件,请执行此操作。在这种情况下,它是说:

如果!csentry.get_Item("UR.Action").get_IsPresent() ? false : csentry.get_Item("UR.Action").get_Value()等于"Disable",请执行不包含的结果。

需要更多信息才能为您提供确切的答案。但是,一旦您意识到它们是如何工作的,如果语句很简单。基本格式为:

if (condition) {
   result
}

说我必须为一个说“嗨”的人做一个简单的响应程序

if (input == 'hi') {
   printf("hello");
}

答案 2 :(得分:0)

这里是如果要评估三元运算。

从很高的层次来看,如果存在UR.Action,则它看起来像 !csentry.get_Item(“ UR.Action”)。get_IsPresent() 。如果条件不执行。如果不存在,则评估此条件 csentry.get_Item(“ UR.Action”)。get_Value()==“ Disable” ,如果为true,则使用if块被执行,否则将无法执行。

如果有时间,请查看ternary_operator了解更多详细信息