日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

C# 对get和set的理解

發布時間:2024/2/28 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C# 对get和set的理解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

使用 get set和不使用的對比

比如,有兩個類person:

//第一種方式 public class person {public string name; }//第二種方式 public class person {public string Name { set; get; } }

第一個類型的name屬性未封裝,其name屬性直接通過public關鍵字暴露給系統中的其他類了

第二個類型的name屬性通過get set關鍵字進行了封裝,get和set分別對應的是可讀和可寫,相當于如下代碼:

private string name;public string Name//這個Name最好和屬性名稱相同,(如果想定義成名稱不同,見文章底部)并且首字母一定要大寫 {get { return name; }set { name = value; } }

c#在定義類時,通常要把類中聲明的對象封裝起來,使得外界不能訪問這個屬性。上述代碼中如果去掉set部分,則外界只能讀取name的值,如果去掉get部分,則只能給name賦值。這樣就可以控制外界對私有屬性name的訪問權限了,這種寫法是C#的一個特性。

當然你也可以通過自己創建函數來對name進行取值和賦值,但這樣就顯得比較麻煩了。

屬性與普通變量不同就在于, 普通變量就是放在屋子里的東西, 是什么樣明明白白. 而屬性則是在屋子的門口放了個守門人, 你拿東西放東西要經過他.

這個守門人就是屬性訪問器, 拿東西就是 get, 放東西就是 set. 怎么拿怎么放是它說了算, 雖然你覺得好像就是直接拿直接放差不多.
GET SET 就是對外的接口 ,一般在實例中訪問成員數據需要這個成員數據的訪問方式為PUBLIC ,現在C#很高級了,GET 就是獲取,SET 就是設置,但是它提供了跟好的收縮性,對GET 和SET 可以單獨設置訪問權限 比如你對某個成員數據只能讀取或者只寫,或者只有派生類可以訪問等。。。 相對以前來說,沒有屬性訪問器,需要通過函數來調用私有成員數據,屬性提供了高效的訪問模式和簡單的書寫。
就是為了安全啊~
字段是你具體要操作的數據所以他的值不能出錯,可是你又不能避免用戶犯錯
為了安全就用屬性來給字段賦值,因為 在set中你可以對數據的安全進行驗證,
get就更簡單了驗證完數據了就要把值給了字段所以要get
set的中文意思是“設置”;
get的中文意思是“獲得”;

補充:

get 和 set 會在相應的時候自動調用
主要是為了隱藏程序內的數據結構時用
get是獲取該屬性的值,
set設置該屬性的值。
在用set時有一個特殊的變量value
就是設置屬性時的值

value 隱式參數,用于設置訪問器以及添加或移除事件處理程序。

對類的屬性進行 設置
比如用類名.屬性=“”賦值 set作用
變量=類名.屬性 取值 get 作用

完整代碼示例

如果value<0,則定義radius=0,否則,將value賦值給radius屬性

using System; using System.Collections.Generic; using System.Linq; using System.Text;namespace test {class Program{static void Main(string[] args){Circle circle = new Circle();circle.Radius = -1;Console.WriteLine("Radius is " + circle.Radius);//這樣使用}}class Circle{const double pi = 3.1415;private double radius;public double Radius//這樣定義{get => radius;set{if (value < 0) radius = 0;else radius = value;}}} }

還可以改成這樣(注意帶底色的字)

超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生

總結

以上是生活随笔為你收集整理的C# 对get和set的理解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。