if语句的解释

问题描述 投票:3回答:3

我是C#的新手。看起来下面的代码在C中。有些请在下面解释如果声明

if ((!csentry.get_Item("UR.Action").get_IsPresent() ? false : csentry.get_Item("UR.Action").get_Value() == "Disable"))
c#
3个回答
5
投票

它分解为以下内容。这比你的可读性高1000倍

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

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

注意:请参阅@madreflection对帖子的评论,以了解为什么这可能会严重受损

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


其他资源

?: Operator (C# Reference

条件运算符?:(通常称为三元条件运算符)计算布尔表达式,并返回计算两个表达式之一的结果,具体取决于布尔表达式的计算结果是true还是false


0
投票

在这里,如果它正在评估三元运作。

从非常高的层次来看,它看起来像!csentry.get_Item(“UR.Action”)。get_IsPresent()如果存在UR.Action则不会执行if条件。如果它不存在那么这个条件得到评估csentry.get_Item(“UR.Action”)。get_Value()==“禁用”如果为真,那么if块被执行,否则它将不被执行。

当你有时间看看ternary_operator了解更多细节


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");
}
© www.soinside.com 2019 - 2024. All rights reserved.