国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

經(jīng)典講解C# get set

開(kāi)發(fā) 后端
C# get set不提倡將域的保護(hù)級(jí)別設(shè)為 public而使用戶(hù)在類(lèi)外任意操作--那樣太不OO,或者具體點(diǎn)說(shuō)太不安全!對(duì)所有有必要在類(lèi)外可見(jiàn)的域,C#推薦采用屬性來(lái)表達(dá)。

C# get set函數(shù)很常用,但是用好還是需要很多經(jīng)驗(yàn)的,下面的文章就是幫你積累C# get set函數(shù)經(jīng)驗(yàn)的。

C# get set不提倡將域的保護(hù)級(jí)別設(shè)為 public而使用戶(hù)在類(lèi)外任意操作--那樣太不OO,或者具體點(diǎn)說(shuō)太不安全!對(duì)所有有必要在類(lèi)外可見(jiàn)的域,C#推薦采用屬性來(lái)表達(dá)。屬性不表示存儲(chǔ)位置,這是屬性和域的根本性的區(qū)別。下面是一個(gè)典型的屬性設(shè)計(jì):

  1. using System;  
  2. class MyClass  
  3. {  
  4. int integer;  
  5. public int Integer   
  6. {  
  7. get {return integer;}  
  8. set {integer=value;}  
  9. }  
  10. }  
  11. class Test  
  12. {  
  13. public static void Main()  
  14. {  
  15. MyClass MyObject=new MyClass();  
  16. Console.Write(MyObject.Integer);  
  17. MyObject.Integer++;  
  18. Console.Write(MyObject.Integer);  
  19. }  

一如我們期待的那樣,程序輸出0 1。我們可以看到屬性通過(guò)對(duì)方法的包裝向程序員提供了一個(gè)友好的域成員的存取界面。這里的value是C# get set的關(guān)鍵字,是我們進(jìn)行屬性操作時(shí)的set的隱含參數(shù),也就是我們?cè)趫?zhí)行屬性寫(xiě)操作時(shí)的右值。

屬性提供了只讀(get),只寫(xiě)(set),讀寫(xiě)(get和 set)三種接口操作。對(duì)域的這三種操作,我們必須在同一個(gè)屬性名下聲明,而不可以將它們分離,看下面的實(shí)現(xiàn):

  1. class MyClass  
  2. {  
  3. private string name;  
  4. public string Name  
  5. {  
  6. get { return name; }  
  7. }  
  8. public string Name  
  9. {  
  10. set { name = value; }  
  11. }  
  12. }  

上面這種分離Name屬性實(shí)現(xiàn)的方法是錯(cuò)誤的!我們應(yīng)該像前面的例子一樣將他們放在一起。值得注意的是三種屬性(只讀,只寫(xiě),讀寫(xiě))被C# get set認(rèn)為是同一個(gè)屬性名,看下面的例子:

  1. class MyClass  
  2. {  
  3. protected int num=0;  
  4. public int Num  
  5. {  
  6. set 
  7. {  
  8. num=value;  
  9. }  
  10. }  
  11. }  
  12. class MyClassDerived: MyClass  
  13. {  
  14. new public int Num  
  15. {  
  16. get 
  17. {  
  18. return num;  
  19. }  
  20. }  
  21. }  
  22. class Test  
  23. {  
  24. public static void Main()  
  25. {  
  26. MyClassDerived MyObject = new MyClassDerived();  
  27. //MyObject.Num= 1; //錯(cuò)誤 !  
  28. ((MyClass)MyObject).Num = 1;  
  29. }  
  30. }  

我們可以看到MyClassDerived中的屬性Num-get{}屏蔽了MyClass中屬性Num-set{}的定義。

當(dāng)然屬性遠(yuǎn)遠(yuǎn)不止僅僅限于域的接口操作,屬性的本質(zhì)還是方法,我們可以根據(jù)程序邏輯在屬性的提取或賦值時(shí)進(jìn)行某些檢查,警告等額外操作,看下面的例子:

  1. class MyClass  
  2. {  
  3. private string name;  
  4. public string Name  
  5. {  
  6. get { return name; }  
  7. set 
  8. {  
  9. if (value==null)  
  10. name="Microsoft";  
  11. else 
  12. name=value;  
  13. }  
  14. }  

由于屬性的方法的本質(zhì),屬性當(dāng)然也有方法的種種修飾。屬性也有5種存取修飾符,但屬性的存取修飾往往為public,否則我們也就失去了屬性作為類(lèi)的公共接口的意義。除了方法的多參數(shù)帶來(lái)的方法重載等特性屬性不具備外, virtual, sealed, override, abstract等修飾符對(duì)屬性與方法同樣的行為,但由于屬性在本質(zhì)上被實(shí)現(xiàn)為兩個(gè)方法,它的某些行為需要我們注意??聪旅娴睦樱?/P>

  1. abstract class A  
  2. {  
  3. int y;  
  4. public virtual int X  
  5. {  
  6. get { return 0; }  
  7. }  
  8. public virtual int Y  
  9. {  
  10. get { return y; }  
  11. set { y = value; }  
  12. }  
  13. public abstract int Z { getset; }  
  14. }  
  15. class B: A  
  16. {  
  17. int z;  
  18. public override int X  
  19. {  
  20. get { return base.X + 1; }  
  21. }  
  22. public override int Y  
  23. {  
  24. set { base.Y = value < 0? 0: value; }  
  25. }  
  26. public override int Z  
  27. {  
  28. get { return z; }  
  29. set { z = value; }  
  30. }  

這個(gè)例子集中地展示了屬性在繼承上下文中的某些典型行為。這里,類(lèi)A由于抽象屬性Z的存在而必須聲明為abstract。子類(lèi)B中通過(guò)base關(guān)鍵字來(lái)引用父類(lèi)A的屬性。類(lèi)B中可以只通過(guò)Y-set便覆蓋了類(lèi)A中的虛屬性。

靜態(tài)屬性和靜態(tài)方法一樣只能存取類(lèi)的靜態(tài)域變量。我們也可以像做外部方法那樣,聲明外部屬性。以上就是對(duì)C# get set的簡(jiǎn)單介紹。

【編輯推薦】

  1. 淺析Silvelight中顯示多重?cái)?shù)據(jù)模型集合
  2. C# XML解析方式實(shí)例解析
  3. 簡(jiǎn)述C# XML解析方法的特點(diǎn)及應(yīng)用
  4. 有關(guān)事件與委托關(guān)系的思考
  5. .NET對(duì)象的XML序列化和反序列化實(shí)例詳解
責(zé)任編輯:阡陌 來(lái)源: CSDN
相關(guān)推薦

2009-09-10 16:38:43

C# get set用

2009-08-27 15:22:27

C#中的GET與SET

2009-09-10 15:27:16

C# get set

2009-09-11 09:15:06

C# get方法

2009-09-10 14:52:55

C# get

2009-08-28 16:37:32

C# for循環(huán)

2009-09-08 15:39:00

2009-08-26 09:58:22

C#關(guān)鍵字

2009-09-08 14:21:38

CheckBox翻頁(yè)選

2009-09-01 14:39:47

C#創(chuàng)建Excel文件

2009-09-10 17:37:01

C# get post

2009-08-19 17:10:09

C#回調(diào)函數(shù)

2009-08-05 18:09:17

C#異常處理機(jī)制

2010-05-27 17:17:37

Subversion入

2009-09-10 16:41:13

C# get post

2009-09-11 10:25:35

C# button樣式

2009-08-18 11:07:06

C#枚舉類(lèi)型

2009-08-17 15:34:58

C#創(chuàng)建XML

2010-05-11 15:19:29

2009-11-09 09:23:10

WCF數(shù)據(jù)契約
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

国产免费观看久久| 午夜免费视频在线国产| 国产精品久久久久久久久久| 91麻豆精品国产自产在线观看一区| 成人97人人超碰人人99| 免费成人结看片| 欧美影视资讯| av中文字幕在线观看| 色老板在线观看| 亚洲天堂第一区| 99热99热| 国产欧美一区二区| 韩日欧美一区二区| 亚洲另类激情图| 日韩欧美亚洲范冰冰与中字| 91在线视频播放地址| 国产美女精品在线| 久久久久久亚洲精品杨幂换脸| 精品国产乱码| 高清一区二区中文字幕| 免费在线观看黄色网| h网站在线播放| 男人操女人免费| 91看片淫黄大片91| 日韩欧美在线观看强乱免费| 国产日韩欧美在线视频观看| 国产精品欧美激情| 国产成人91久久精品| 热99久久精品| 国产精品美乳一区二区免费| 午夜精品美女自拍福到在线| 日韩在线观看免费全集电视剧网站| 欧美一区二区三区色| 精品美女国产在线| 狠狠色噜噜狠狠狠狠97| 欧美影院一区二区三区| 在线免费av一区| 欧美精品xxxxbbbb| 日韩三级在线观看| 国产亚洲欧洲在线| 色哟哟亚洲精品一区二区| 亚洲国产免费av| 日韩久久精品成人| 中文字幕在线精品| 欧美国产精品va在线观看| 久久久999精品视频| 成人av在线资源网| 欧美区日韩区| 天使萌一区二区三区免费观看| 视频在线观看91| 国产精品99久久久久久久女警| 91一区二区三区在线观看| 综合久久国产九一剧情麻豆| 亚瑟在线精品视频| 欧美精品三级在线观看| 日韩黄色高清视频| 丝袜美腿精品国产二区| 国产精品久久久久久av福利| julia一区二区中文久久94| 国产精品国产三级国产专区53 | 羞羞色国产精品| 成人a免费视频| 鲁鲁视频www一区二区| 欧美一区二区中文字幕| 嫩草影院2018| 日本在线视频中文有码| 成人av在线播放| 小小影院久久| 国产91在线|亚洲| 1024成人网| 欧美α欧美αv大片| 欧美一级免费看| 在线一区高清| h精品动漫在线观看| 日韩伦理在线一区| 日韩一区二区在线| 国产成人精品三级麻豆| 黄网站色欧美视频| 久久精品福利视频| 99久久综合狠狠综合久久止| 欧美日韩黄色一级片| 免费在线毛片网站| 精品日本12videosex| 久久久久久久综合狠狠综合| 日韩一区二区三区在线| 91精品国产91久久久| 国产盗摄视频在线观看| 爱爱爱免费视频在线观看| 久久99精品国产自在现线| 国产精品自拍av| 欧美日韩mp4| 91pron在线| 香蕉97视频观看在线观看| 天堂va在线高清一区| 国产原创一区二区三区| 精品视频免费在线| 91久久在线观看| 神马久久久久| 日本激情一区| 精品国产乱码久久久久久婷婷| 欧美激情在线观看视频| 男人的天堂avav| 国产精品日本一区二区三区在线| 国产毛片一区二区| 亚洲精品一二区| 2021国产视频| 亚洲视频一起| 一区二区三区不卡视频| 国产美女久久久| www在线播放| 视频一区在线视频| 精品国产一区二区三区久久影院 | 精品国产一区二区三区麻豆免费观看完整版 | 久久精品视频播放| 缅甸午夜性猛交xxxx| 成人性生交大片免费网站| 精品亚洲成a人在线观看| 亚洲九九九在线观看| av动漫在线观看| 亚洲最好看的视频| 色哟哟日韩精品| 欧美另类一区| 亚洲精品毛片| 亚洲一区中文日韩| 精品一区二区三区自拍图片区| 蜜桃传媒在线观看免费进入| 国产精品亚洲一区二区三区妖精 | 99久久精品网| 欧美三区在线视频| 一区二区精品免费视频| 成人爱爱网址| 亚洲三级电影全部在线观看高清| 国产精品91视频| 2021天堂中文幕一二区在线观| 丁香天五香天堂综合| 欧美国产视频一区二区| 成人18在线| av资源网一区| 国产精品亚洲自拍| 惠美惠精品网| 亚洲日本在线观看| 亚洲图片在线观看| 日韩精品丝袜美腿| 亚洲精品黄网在线观看| 97影院手机在线观看| 国产.精品.日韩.另类.中文.在线.播放| 国产精品69久久| 成人免费毛片嘿嘿连载视频…| 亚洲天堂免费在线观看视频| 高清一区二区三区视频| 成人97精品毛片免费看| 91麻豆精品久久久久蜜臀| 成人免费在线观看视频网站| 极品裸体白嫩激情啪啪国产精品| xxx一区二区| 97超碰在线免费| 色综合久久综合网| www.4438全国最大| 成人av网在线| 日本在线播放一区| 国产精品永久| 日韩高清在线观看一区二区| 国产精品亚洲综合一区在线观看| 亚洲少妇中文在线| 国产在线高清视频| 亚洲精品一线二线三线| 99re在线视频| 亚洲国产成人爱av在线播放| 色在线视频观看| 中文字幕免费精品一区| 欧美综合影院| 久久这里只有精品99| 自拍偷拍亚洲| 欧美亚洲成人网| 亚洲色图网站| 日本一区二区精品视频| 国产成人超碰人人澡人人澡| 亚洲va韩国va欧美va精四季| 欧美舌奴丨vk视频| 日韩福利在线播放| 日本视频在线免费观看| 成人av在线资源网| 久久青草精品视频免费观看| 天堂在线中文字幕| 亚洲一本大道在线| 日本福利午夜视频在线| 欧美一区二区三区在线观看视频| 国内激情视频在线观看| 久久久www成人免费精品张筱雨| av在线资源网| 欧美视频一区二区三区…| 杨幂一区欧美专区| 欧美一区一区| 欧美一区二区视频在线观看2022| 久久久国内精品| 岳的好大精品一区二区三区| 亚洲欧美成人网| 中文字幕免费高清电视剧网站在线观看| 日韩久久一区二区| 国产99视频精品免费视频36|