鍍金池/ 問答/C#  網(wǎng)絡(luò)安全/ c# GetFields() 返回順序問題

c# GetFields() 返回順序問題

msdn針對Type.GetFields()的說明:GetFields方法的返回順序是不固定的,代碼一定不能依賴返回順序。
但是測試的返回順序卻總是和字段的定義順序一致。請問msdn所說的順序不固定是指什么情形下發(fā)生的呢?

回答
編輯回答
離殤

不固定的意思是在不同的機(jī)器上面結(jié)果未必一致。
實(shí)際上在同一臺上面也未必一直,只是幾率有點(diǎn)小。

2018年3月19日 15:08
編輯回答
哎呦喂

你不能依賴這個順序,不代表人家不能以固定順序返回。
人家的意思就是,你不要對這個返回的順序有任何假設(shè)。很可能重新編譯一下、換個執(zhí)行環(huán)境、換個編譯器版本,這個順序可能會受影響。

2017年1月6日 23:31
編輯回答
尤禮

如果你的元數(shù)據(jù)DLL變了。返回順序可能不一樣,比如你之前只有15個字段,而后面增加到了20個字段。他們的排序肯定是會被打亂的。

2018年5月4日 00:49
編輯回答
夏夕

所謂的順序不固定意思是無法判斷Type.GetFields() 返回的字段順序是什么樣的,也就是順序沒有預(yù)期。

但是由于程序的算法不會變,所以兩次生獲得的結(jié)果是一致的。

2018年8月22日 07:16