C# if语句的解释
我是新来的。看起来下面的代码是C。请解释一下下面的if语句C# if语句的解释,c#,C#,我是新来的。看起来下面的代码是C。请解释一下下面的if语句 if ((!csentry.get_Item("UR.Action").get_IsPresent() ? false : csentry.get_Item("UR.Action").get_Value() == "Disable")) if语句基本上是说,如果满足了条件,就这样做。在这种情况下,它的意思是: 如果!csentry.get_项(“UR.Action”).get_IsPresent()?false:csentry.get
if ((!csentry.get_Item("UR.Action").get_IsPresent() ? false : csentry.get_Item("UR.Action").get_Value() == "Disable"))
if语句基本上是说,如果满足了条件,就这样做。在这种情况下,它的意思是: 如果
!csentry.get_项(“UR.Action”).get_IsPresent()?false:csentry.get_Item(“UR.Action”).get_Value()
等于“Disable”
,执行未包含的结果
确实需要更多的信息才能给你准确的答案。但是一旦你意识到它们是如何工作的,如果语句很简单的话。基本格式为:
if (condition) {
result
}
比如说我必须为一个说“嗨”的人做一个简单的回应程序
它可以分解为以下几点。它的可读性是你的1000倍
var urlAction = csentry["UR.Action"];
if (urlAction.IsPresent && urlAction.Value == "Disable")
{
// then do stuff
}
注意:请参阅帖子上的评论,了解为什么这可能会造成如此严重的损坏
这些代码经过编译,然后反编译回C#
访问引用的程序集。这经常发生在ILSpy;当你
添加引用的程序集,类型变为可用
属性元数据允许它转换为属性访问
其他资源 ) 条件运算符
?:
,通常称为三元条件运算符
运算符,对布尔表达式求值,并返回
计算两个表达式之一,具体取决于
表达式的计算结果为true或false
这里是关于它是否在计算一个三元运算 从一个非常高的层次来看,它看起来像!csentry.get_Item(“UR.Action”).get_IsPresent()如果UR.Action存在,则不会执行if条件。如果不存在,则对该条件进行求值csentry.get_Item(“UR.Action”).get_Value()=“Disable”如果为真,则执行if块,否则不会执行
当您有时间查看更多详细信息时它的代码可能重复,这些代码已编译,然后反编译回C#,无法访问引用的程序集。这经常发生在ILSpy;当您添加引用的程序集并且类型变为可用时,属性元数据允许它转换为属性访问。我正在考虑这个问题。反编译的代码缺少属性元数据。看我的编辑。@RajatKansal我在听。。。intently@RajatKansal如果你认为这是错误的,我感觉你可能不知道三元运算符是如何工作的。这在功能上与OP的代码相同。虽然将来我建议你解释一下为什么你认为某件事是错的,但是仅仅说它是错的是没有帮助的
var urlAction = csentry["UR.Action"];
if (urlAction.IsPresent && urlAction.Value == "Disable")
{
// then do stuff
}