【发布时间】:2014-06-16 10:51:43
【问题描述】:
使用指向数组的指针时,我总是使用索引器访问元素,例如myPtr[i] = stuff;但是,我最近在查看 BitConverter's implementation 并发现元素是通过 *(myPtr + i) = stuff 访问的。
我认为这很奇怪,因为这两种方法(据我所知)做的事情完全相同,也就是说,它们返回myPtr + i 的地址,除了(在我看来)索引器方法看起来更具可读性.
那么微软为什么选择以他们的方式递增指针,这两种方法有什么区别(是否有性能优势)?
【问题讨论】:
-
它们生成相同的 IL。这只是风格问题。
-
ToBoolean方法很棒。 cmets 与代码不匹配,它具有出色的x == 0 ? false : true模式,而不是使用普通的x != 0。