当您需要将流重置为开头(例如MemoryStream)时,最佳做法是使用
stream.Seek(0, SeekOrigin.Begin);
Run Code Online (Sandbox Code Playgroud)
要么
stream.Position = 0;
Run Code Online (Sandbox Code Playgroud)
我看到两者都工作正常,但想知道一个人是否比另一个更正确?
gor*_*rdy 146
设置绝对位置时使用位置,设置相对位置时寻找.两者都是为了方便而提供的,因此您可以选择符合代码样式和可读性的选项.访问位置要求流是可搜索的,因此它们可以安全地互换.
您可以查看两种方法的源代码以找出:
代价几乎是相同的(3个if和一些算术)。但是,这仅适用于跳转到绝对偏移量(例如)Position = 0而不是相对偏移量(例如Position += 0)的情况,在这种情况下,Seek似乎稍微好一些。
但是,请记住,我们在谈论的是少数整数定律和ifs检查的性能,这就像使用基准测试方法无法准确测量一样。就像其他人已经指出的那样,没有显着/可检测的差异。
| 归档时间: |
|
| 查看次数: |
53164 次 |
| 最近记录: |