C#中Struct與Class區別

來源:互聯網
上載者:User
根據C# programming reference給出來資訊,Struct實質上還是用來實現輕量層級的類派用處的,這就意味著它還是可以有屬性,方法(函數)以及標籤等,唯一的區別在於,Struct在編程的時候不能由程式員申明建構函式,即使是預設(不帶參數)的建構函式,同樣也不能有析構的處理部分。這是因為Struct的建構函式是由編譯器自動產生的。並且Struct的用途是那些描述輕量級的對象,例如Line,Point等,並且效率比較高。 偶覺得鬱悶的倒不是答錯題不能夠通過面試。而是認為個人覺得這個Struct實在沒有必要存在於C#的語言中。為什麼呢?因為,類能夠完全替代Struct的行為,唯一影響效率的問題在於,Struct是以傳值的方式來傳遞的,而Class是以引用的方式來傳遞的。所以有人會說啦,如果系統中存在大量輕量級的對象,你就可以用Struct啦,那樣效率高很多,我認為是腦子被牛踩過才會想出來這樣的設計,你想,一個系統要是能夠輕量級的對象多到影響效率的地步,那麼就該好好考慮一下重新作設計。更何況,編譯器還是會給建構函式於Struct的,因此,個人認為即使編譯時間刻它也沒啥優勢。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.