C#语法里面的问号

mus*_*aab 4 c#

可能重复:
使用条件?:(三元)运算符的好处

嗨,我正在查看这个freesource库,我看到这很奇怪 - 至少对我来说 - 语法

*currFrame = ( ( diff >= differenceThreshold ) || ( diff <= differenceThresholdNeg ) ) ? (byte) 255 : (byte) 0;
Run Code Online (Sandbox Code Playgroud)

currFrame是byte类型

diff,differenceThreshold和differenceThresholdNeg的类型为Int.

问号有什么作用?,这个奇怪的分配句子是什么意思?

提前致谢

Jak*_*cki 8

条件运算符(?:)返回取决于布尔表达式的值的两个值中的一个.以下是条件运算符的语法.

condition ? first_expression : second_expression;
Run Code Online (Sandbox Code Playgroud)

C#参考:http://msdn.microsoft.com/en-us/library/ty67wk28.aspx

在您的情况下,如果( diff >= differenceThreshold ) || ( diff <= differenceThresholdNeg )true,则将为currFrame分配值255 ,否则将分配值0.


JAi*_*iro 7

这是一样的

if(( diff >= differenceThreshold ) || ( diff <= differenceThresholdNeg ) )
     currFrame = (byte) 255
else
    currFrame = (byte) 0
Run Code Online (Sandbox Code Playgroud)