第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

屬性與字段:需要幫助來掌握屬性在字段上的使用

屬性與字段:需要幫助來掌握屬性在字段上的使用

C#
慕工程0101907 2019-12-04 10:26:44
首先,我已經(jīng)閱讀了有關(guān)該主題的帖子列表,并且由于了解封裝和字段修飾符(private,public..ect),因此我不了解屬性。我已經(jīng)學(xué)到的C#的主要方面之一是使用封裝在代碼中保護(hù)數(shù)據(jù)的重要性。我“認(rèn)為”我理解這是因為使用了修飾符(私有,公共,內(nèi)部,受保護(hù))的能力。但是,在了解了屬性之后,我不僅在理解屬性使用方面,而且在理解C#中數(shù)據(jù)保護(hù)的總體重要性/能力(我理解為封裝)時也感到困惑。更具體地說,我在使用C#屬性時所讀的所有內(nèi)容是,由于以下原因,您應(yīng)嘗試使用它們代替字段:1)它們允許您在直接訪問字段時無法更改數(shù)據(jù)類型。2)它們?yōu)閿?shù)據(jù)訪問添加了一定程度的保護(hù)但是,從我的“想法”開始,我發(fā)現(xiàn)使用字段修飾符確實是#2,除非您沒有理由更改類型(#1),否則在我看來屬性只是生成了附加代碼-因為您是(或多或少)創(chuàng)建隱藏方法來訪問字段,而不是直接訪問字段。然后可以將整個修飾符添加到“屬性”中,這使我對屬性訪問數(shù)據(jù)的需求的理解更加復(fù)雜。我已經(jīng)閱讀了不同作者關(guān)于“屬性”的許多章節(jié),但沒有一章真正說明了對屬性vs.字段vs.封裝(以及良好的編程方法)的良好理解。有人可以解釋:1)為什么我要使用屬性而不是字段(特別是當(dāng)它出現(xiàn)時,我只是添加其他代碼2)在跟蹤其他人的代碼時,關(guān)于識別屬性的使用并且不將其視為簡單的方法(除了get; set是顯而易見的)的任何技巧?3)關(guān)于什么時候使用什么好的編程方法有什么通用的經(jīng)驗法則?謝謝,很抱歉,我的帖子很長-我不想只問一個100x的問題,而又不解釋為什么再次問這個問題。
查看完整描述

3 回答

?
弒天下

TA貢獻(xiàn)1818條經(jīng)驗 獲得超8個贊

您不必?fù)?dān)心通過屬性訪問字段所需的額外代碼,它會被JIT編譯器“優(yōu)化”(通過內(nèi)聯(lián)代碼)。除非它太大而無法內(nèi)聯(lián),否則無論如何您都需要額外的代碼。


而且用于定義簡單屬性的額外代碼也很少:


public int MyProp { get; set; } // use auto generated field.

當(dāng)您需要自定義時,您以后總是可以定義自己的字段。


因此,您剩下了額外的封裝/數(shù)據(jù)保護(hù)層,這是一件好事。


我的規(guī)則:總是通過屬性公開字段


查看完整回答
反對 回復(fù) 2019-12-04
?
四季花海

TA貢獻(xiàn)1811條經(jīng)驗 獲得超5個贊

關(guān)于Properties的好處之一是,getter和setter可以具有不同的訪問級別??紤]一下:


public class MyClass {


  public string MyString { get; private set; }


  //...other code

}

只能在內(nèi)部(例如在構(gòu)造函數(shù)中)更改此屬性。閱讀有關(guān)依賴注入的信息。構(gòu)造函數(shù)注入和屬性注入都通過某種形式的外部配置處理屬性設(shè)置。那里有很多框架。如果您深入研究其中的一些內(nèi)容,將會對屬性及其使用有很好的了解。依賴注入還將幫助您解決有關(guān)良好實踐的第三個問題。


查看其他人的代碼時,您可以分辨某些東西是方法還是屬性,因為它們的圖標(biāo)不同。同樣,在Intellisence中,屬性摘要的第一部分是單詞Property。


查看完整回答
反對 回復(fù) 2019-12-04
  • 3 回答
  • 0 關(guān)注
  • 445 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號