代码之家  ›  专栏  ›  技术社区  ›  Paul Rowland

这段C代码的作用是什么?

c#
  •  1
  • Paul Rowland  · 技术社区  · 15 年前

    result.isvisible等于什么?

        if(a==b)
            result.IsVisible = obj1.status.abc_REPORT == 'Y'
                && obj1.AnotherValue.ToBoolean() == false;
    
    5 回复  |  直到 15 年前
        1
  •  5
  •   Jon Skeet    15 年前

    这取决于 obj1.status.abc_Report obj1.AnotherValue.ToBoolean() (这完全取决于a==b)。

    我不太确定这里真正的问题是什么——哪一点让你困惑?

    一位 可以 让人困惑的是,你是短路操作员(可能是缺乏支撑!)

    运营商将 只有 如果左侧的计算结果为 true :表达式的总体结果是 当且仅当 二者都 边的计算结果为 . (我假设这里没有奇怪的用户定义转换。)

    另一种写作方式是:

    if (a == b)
    {
        bool visibility = false;
        if (obj1.status.abc_REPORT == 'Y')
        {
            if (obj1.AnotherValue.ToBoolean() == false)
            {
                visibility = true;
            }
        }
        result.IsVisible = visibility;
    }
    

    请注意,比较布尔值的条件如下:

    obj1.AnotherValue.ToBoolean() == false
    

    通常是这样写的:

    !obj1.AnotherValue.ToBoolean()
    

    (注意开头的感叹号-逻辑“not”运算符。)

        2
  •  5
  •   John Sheehan    15 年前

    与此相同,在很多行中:

    if (a==b) {
        if (obj1.status.abc_REPORT == 'Y') {
             if (obj1.AnotherValue.ToBoolean() == false) {
                 result.IsVisible = true;
             }
             else {
                 result.IsVisible = false;
             }
        }
        else {
            result.IsVisible = false;
        }
    }
    
        3
  •  0
  •   Aamir    15 年前

    简单来说:

    如果a等于b:

    只有在以下情况下,结果才可见:

    对象1的状态abc_报告为“是”(很可能是y=yes),而对象1的其他值无法转换为布尔值。

        4
  •  0
  •   dplante Tschallacka    15 年前

    我猜是结果。isvisible是一个布尔值。

    如果以下条件为真,则为真: obj1.status.abc_report='Y' 和 obj1.anotherValue.toBoolean()=假

    此外,a==b必须为真才能输入初始if

        5
  •  0
  •   TheVillageIdiot    15 年前

    让我们一行一行:

      if(a==b)
    

    如果a的值等于b,则执行以下行

     result.IsVisible = obj1.status.abc_REPORT == 'Y'
            && obj1.AnotherValue.ToBoolean() == false;
    

    如果obj1.status.abc_report等于“y”,并且obj1.anotherValue.toboolean()等于false,则结果是某些对象(可能是winforms控件等)具有属性isvisible,请将其设置为true;