在以下代码片段中:

long frameRate = (long)(_frameCounter / this._stopwatch.Elapsed.TotalSeconds);

为什么在赋值运算符的右边有一个附加的(长的)符号(…)?

最佳答案

除法创建一个双精度浮点值(因为TimeSpan.TotalSeconds是一个double),因此强制转换将结果值截断为整数而不是浮点。最后,每秒的帧数大约是整数,而不是每秒分数帧的精确答案。
如果frameRate用于显示或记录,那么转换可能只是为了使输出看起来更好。

09-04 08:07