【问题标题】:Registry.GetValue(): Issue with return statement syntaxRegistry.GetValue():return 语句语法问题
【发布时间】:2012-08-07 14:15:15
【问题描述】:

谁能告诉我这个c#语法到底是什么意思:

return (int)MyPersistenceClass.GetValue(REG_ENTRY_HHHH, DEFAULT_REG_ENTRY_HHHH) == 1

说 if (int)GetValue() == 1 返回值是否正确。我不确定当 (int)GetValue() != 1 时我会返回什么。非常感谢任何帮助。

【问题讨论】:

    标签: c# wpf windows winapi


    【解决方案1】:

    这里有几个语法。

    MyPersistenceClass.GetValue(REG_ENTRY_HHHH, DEFAULT_REG_ENTRY_HHHH)(可能)是从注册表读取值的静态方法调用。

    (int)x 是将x 转换为int 的强制转换表达式,因此(int)MyPersistenceClass.GetValue(REG_ENTRY_HHHH, DEFAULT_REG_ENTRY_HHHH) 将从注册表中读取的值转换为int

    ==equality operator。它比较两个事物并返回一个bool 值:如果它们相同,则返回true,否则返回false

    return x 计算x,将结果作为函数的返回值并退出函数。

    将它们放在一起,您的代码会从注册表中读取一个值。该值将转换为int 并与1 进行比较。如果值为1,则函数返回true,否则返回false

    【讨论】:

    • 谢谢 arx。您的最后一句话是我一直在寻找的,但感谢您的解释。它肯定也会对其他人有所帮助。
    【解决方案2】:

    一个简单的三元语句对你有用:

    return (int)MyPersistenceClass.GetValue(REG_ENTRY_HHHH, DEFAULT_REG_ENTRY_HHHH) == 1 ? 1 : 0;
    

    因此,如果 GetValue() == 1,则返回该值。否则,返回 0。

    【讨论】: