如果没有其他则声明?

时间:2019-05-21 17:02:57

标签: c# model-view-controller

为我提供了这段代码,它有一个带两组大括号的If语句。我假设这是一个if else语句,但是没有'else'


    /usr/sbin/mysqld r
    /proc/*/status r
    /sys/devices/system/node/ r
    /sys/devices/system/node/node0/meminfo r

根据我的断点,它运行正常,没有任何错误,所以我不确定。

2 个答案:

答案 0 :(得分:8)

这只是一个任意代码块。花括号在这里什么也没有做。他们可以被删除。其功能与以下内容相同:

if (Value.Contains("WMD ESA"))
{
   UsersInfo.Add(Benefit.ToString());
}

UsersInfo.Add(((decimal)Benefit.Amount().ToString());

如果要这样做,则应将其 删除,因为这很令人困惑(在我的经验中并不常见)。尽管只是确保不要使用else

答案 1 :(得分:0)

要理解和解决您的问题,您必须学习语句的工作方式。

  

声明:

     

常见操作包括根据给定条件声明变量,分配值,调用方法,遍历集合以及分支到一个或另一个代码块。

     

声明类型不同

     
      
  • 声明语句。

  •   
  • 表达语句。

  •   
  • 选择语句

  •   
  • 迭代语句。

  •   
  • 跳转语句。

  •   
  • 异常处理语句。

  •   
  • 已选中和未选中。

  •   
     

在这种情况下,我们使用选择语句

代码:

弯括号通常用于赋予作用域,但它们是可选的。

如果我们检查您的代码,则有第一个带有花括号的if,在if括号内声明的任何对象仅在if的作用域内可见,对于第二个花括号,将自动有任何语句属于父范围

代码1:

 if (Value.Contains("WMD ESA"))
 {
     UsersInfo.Add(Benefit.ToString());
 }
 {
     UsersInfo.Add(((decimal)Benefit.Amount().ToString());
 }  

代码2:

 if (Value.Contains("WMD ESA"))
 {
     UsersInfo.Add(Benefit.ToString());
 }

 UsersInfo.Add(((decimal)Benefit.Amount().ToString());

最后,代码1和代码2在逻辑上是等效的。