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

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

求分析,在C# 中的屬性的意義??

求分析,在C# 中的屬性的意義??

慕勒3428872 2021-07-19 21:14:18
我知道的是,屬性是為了封裝可是,有時候?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òu)造里也是不能賦值的
查看完整描述

2 回答

?
慕少森

TA貢獻2019條經(jīng)驗 獲得超9個贊

公有屬性是在任何外部類都可訪問到的,如果有人不懷好意就會隨意的修改的public字段,很危險的,但是如果改成private,就不能擅自修改,只能通過屬性,而在屬性里是可以加代碼來判斷別人付的值是否符合你的要求,不符合的可以直接拒絕賦值,這樣就增加了安全性

查看完整回答
反對 回復 2021-07-25
?
侃侃爾雅

TA貢獻1801條經(jīng)驗 獲得超16個贊

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

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

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

1public int A { getset; }

在net frmaework 2.0里是不支持的。

1public int A { get; }

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


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

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



查看完整回答
反對 回復 2021-07-25
  • 2 回答
  • 0 關(guān)注
  • 302 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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