3 回答

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超8個(gè)贊
最大的缺點(diǎn)是事情不會(huì)像您期望的那樣表現(xiàn)-特別是如果可變性來自直接值和其中的引用類型的混合。
老實(shí)說,我不記得我曾經(jīng)看到過人們?cè)谑褂每勺兘Y(jié)構(gòu)時(shí)在新聞組中提出的所有奇怪問題,但是這些原因確實(shí)存在。可變結(jié)構(gòu)會(huì)引起問題。遠(yuǎn)離。
編輯:我剛剛找到了我之前寫過的關(guān)于此主題的電子郵件。它詳細(xì)說明了一點(diǎn):
從哲學(xué)上來說是錯(cuò)誤的:結(jié)構(gòu)應(yīng)該代表某種基本價(jià)值。這些基本上是一成不變的。您不必更改數(shù)字5。可以將變量的值從5更改為6,但是您不能在邏輯上對(duì)值本身進(jìn)行更改。
這實(shí)際上是一個(gè)問題:它會(huì)產(chǎn)生許多奇怪的情況。如果可以通過接口進(jìn)行更改,那就特別糟糕。然后,您可以開始更改裝箱的值。ck 我見過很多新聞組帖子,這是由于人們?cè)噲D使用可變結(jié)構(gòu)而遇到問題。我看到了一個(gè)非常奇怪的LINQ示例,該示例失敗了,因?yàn)樗?code>List<T>.Enumerator是一個(gè)結(jié)構(gòu)。
- 3 回答
- 0 關(guān)注
- 653 瀏覽
添加回答
舉報(bào)