c# GetFields() 返回顺序问题

新手上路,请多包涵

msdn针对Type.GetFields()的说明:GetFields方法的返回顺序是不固定的,代码一定不能依赖返回顺序。
但是测试的返回顺序却总是和字段的定义顺序一致。请问msdn所说的顺序不固定是指什么情形下发生的呢?

阅读 5.4k
4 个回答
新手上路,请多包涵

如果你的元数据DLL变了。返回顺序可能不一样,比如你之前只有15个字段,而后面增加到了20个字段。他们的排序肯定是会被打乱的。

你不能依赖这个顺序,不代表人家不能以固定顺序返回。
人家的意思就是,你不要对这个返回的顺序有任何假设。很可能重新编译一下、换个执行环境、换个编译器版本,这个顺序可能会受影响。

所谓的顺序不固定意思是无法判断Type.GetFields() 返回的字段顺序是什么样的,也就是顺序没有预期。

但是由于程序的算法不会变,所以两次生获得的结果是一致的。

不固定的意思是在不同的机器上面结果未必一致。
实际上在同一台上面也未必一直,只是几率有点小。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进