Registry.GetValue():返回语句语法问题

时间:2012-08-07 14:15:16

标签: c# wpf windows winapi

有人可以告诉我这个c#语法究竟意味着什么:

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

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

2 个答案:

答案 0 :(得分: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,否则返回{{1}}。

答案 1 :(得分:0)

简单的三元声明适合您:

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

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