【发布时间】: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#语法到底是什么意思:
return (int)MyPersistenceClass.GetValue(REG_ENTRY_HHHH, DEFAULT_REG_ENTRY_HHHH) == 1
说 if (int)GetValue() == 1 返回值是否正确。我不确定当 (int)GetValue() != 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。
【讨论】:
一个简单的三元语句对你有用:
return (int)MyPersistenceClass.GetValue(REG_ENTRY_HHHH, DEFAULT_REG_ENTRY_HHHH) == 1 ? 1 : 0;
因此,如果 GetValue() == 1,则返回该值。否则,返回 0。
【讨论】: