最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

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

請看如下圖片內(nèi)容,求問在C# 中的屬性的意義!

請看如下圖片內(nèi)容,求問在C# 中的屬性的意義!

慕工程0101907 2021-11-19 15:11:29
我知道的是,屬性是為了封裝可是,有時(shí)候?qū)傩栽O(shè)置為private int a;public int A{ get{return this.a} set{this.a = value} }這樣的情況使用屬性來封裝有什么意義嗎?為什么不直接寫public int a;屬性還可簡寫為public int A {get;set;} 這樣的情況我也想問上面的問題另外屬性可以設(shè)置只讀和只寫,如果這樣設(shè)置的話...例如public int A{get;}這樣的屬性如何給它賦值呢?即使在類的內(nèi)部也不可以(至少我還不知道)一個(gè)從來不能被賦值的屬性又有何意義呢?屬性限制字段的合理性這個(gè)我也了解的但我看的書里很多時(shí)候在屬性里沒有對字段做任何特殊處理,讓人很迷惑還有就是上面圖片里的問題,這樣寫在構(gòu)造里也是不能賦值的
查看完整描述

2 回答

?
哆啦的時(shí)光機(jī)

TA貢獻(xiàn)1779條經(jīng)驗(yàn) 獲得超6個(gè)贊

因?yàn)槟愣x的字段是不希望“別人”看見的,所以設(shè)置為私有的,但是方法卻是可以公用的。此外,一般情況下只會對屬性設(shè)置可讀,限制為可寫的還真沒見過。這樣也是為了安全性考慮。

查看完整回答
反對 回復(fù) 2021-11-24
?
UYOU

TA貢獻(xiàn)1878條經(jīng)驗(yàn) 獲得超4個(gè)贊

當(dāng)為A賦值時(shí)內(nèi)部的b變量也要改變時(shí),用屬性這個(gè)方法是最好不過的了。

12int a;int b;public int A { getreturn this.a; } setthis.a = value; this.b = value + 1; } }

當(dāng)然,public int A也是可以的,只是賦值和取值都只會取本身的值不會去改變其他的東西。


public int A { getset; }

在net frmaework 2.0里是不支持的。


public int A { get; }

這種編譯器都把它看作是ReadOnly了,無法直接賦值,但你可以進(jìn)行反射或者在構(gòu)建函數(shù)里改目標(biāo)值:


public class ABC : Form {    int a = 5; //直接賦值    public int A { getreturn a; } } //如果沒有構(gòu)建函數(shù),那么會返回默認(rèn)值5    public ABC() { //構(gòu)建函數(shù)        a = 10; //構(gòu)建函數(shù)之后,再調(diào)用A會返回a的值10    }}

【對于public int A{get;}這種就只能用反射了?!烤秃孟褚粋€(gè)類(球),它有個(gè)屬性Type(類型)是"圓",這時(shí)你改成"正方形"就好像不對頭尾了吧,本來是"球"的類,還配對"正方形",這時(shí)你就需要不讓用戶修改這個(gè)值(ReadOnly),一直保持是"圓"。



查看完整回答
反對 回復(fù) 2021-11-24
  • 2 回答
  • 0 關(guān)注
  • 466 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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