当您需要将流重置为开头(例如MemoryStream
)时,最佳做法是使用
stream.Seek(0, SeekOrigin.Begin);
或
stream.Position = 0;
我看到两者都很好,但是想知道一个人是否比另一个更正确?
答案 0 :(得分:133)
答案 1 :(得分:3)
您可以查看两种方法的源代码以查找:
成本几乎相同(3个ifs和一些算术)。然而,这仅适用于跳转到Position = 0
之类的绝对偏移,而不是像Position += 0
这样的相对偏移,在这种情况下,Seek似乎稍好一些。
然而,你应该记住,我们正在谈论少数整数atirthmetics和ifs检查的表现,即使用基准测试方法甚至无法准确测量。像其他人已经指出的那样,没有显着/可检测到的差异。