亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在.NET中,struct和class有什么區別?

在.NET中,struct和class有什么區別?

慕桂英546537 2019-06-20 10:41:39
在.NET中,struct和class有什么區別?在.NET中,struct和class有什么區別?
查看完整描述

3 回答

?
ITMISS

TA貢獻1871條經驗 獲得超8個贊

在.NET中,有兩類型,參考類型價值類型.

結構價值類型課程是參考類型.

一般的區別是參考類型生活在堆上,價值類型內聯生活,也就是說,無論它在哪里,您的變量或字段都是定義的。

包含價值類型包含整個價值類型價值。對于struct,這意味著變量包含整個struct及其所有字段。

包含參考類型包含指針,或參照系到內存中實際值所在的其他地方。

首先,這有一個好處:

  • 價值類型

    總是包含一個值
  • 參考類型

    可以包含

    -參考,意思是他們現在什么都不提

在內部,參考類型S是作為指針實現的,并且知道了這一點,并且知道變量賦值是如何工作的,還有其他的行為模式:

  • 復制

    價值類型

    變量到另一個變量中,將整個內容復制到新變量中,從而使這兩個變量區別開來。換句話說,在復制后,對其中一個的更改不會影響另一個
  • 復制

    參考類型

    變量到另一個變量中,復制引用,這意味著您現在有兩個對同一個變量的引用。

    其他地方

    實際數據的存儲。換句話說,在復制之后,更改一個引用中的數據似乎也會影響另一個引用,但這只是因為您實際上只是查看兩個地方的相同數據

在聲明變量或字段時,這兩種類型的區別如下:

  • 變量:

    價值類型

    住在垃圾堆上,

    參考類型

    作為指向堆內存中實際內存所在的某個位置的指針(盡管請注意)

    Eric Lipperts系列文章:Stack是實現細節.)

  • 類/結構字段:

    價值類型

    完全生活在這種類型中,

    參考類型

    作為指向堆內存中實際內存所在的某個位置的指針,駐留在該類型中。


查看完整回答
反對 回復 2019-06-20
?
手掌心

TA貢獻1942條經驗 獲得超3個贊

每一項的簡短摘要:

只上課:

  • 可以支持繼承
  • 是引用(指針)類型
  • 引用可以為空。
  • 每個新實例的內存開銷

僅結構:

  • 不能支持繼承
  • 是值類型
  • 通過值傳遞(如整數)。
  • 不能具有空引用(除非使用了Nullable)
  • 不要為每個新實例設置內存開銷-除非“裝箱”。

類和結構:

  • 復合數據類型通常用于包含一些具有某種邏輯關系的變量。
  • 可以包含方法和事件。
  • 可以支持接口


查看完整回答
反對 回復 2019-06-20
  • 3 回答
  • 0 關注
  • 596 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號