国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

C#:字段與屬性

2019-11-17 03:01:15
字體:
來源:轉載
供稿:網友

C#:字段與屬性

MSDN中是這么介紹字段和屬性的:

A field is a variable of any type that is declared directly in a class or struct.

字段:“字段”是直接在類或結構中聲明的任何類型的變量。

A PRoperty is a member that provides a flexible mechanism to read, write, or compute the value of a private field.Properties can be used as if they are public data members, but they are actually special methods called accessors.This enables data to be accessed easily and still helps promote the safety and flexibility of methods.

屬性是這樣的成員:它們提供靈活的機制來讀取、編寫或計算私有字段的值。可以像使用公共數據成員一樣使用屬性,但實際上它們是稱為“訪問器”的特殊方法。這使得數據在可被輕松訪問的同時,仍能提供方法的安全性和靈活性。

字段是變量,而屬性是方法。字段一般是private的,而屬性一般是public的。外部代碼可以通過屬性來訪問字段,實現對字段的讀寫操作,所以屬性又稱訪問器。

屬性可以控制外部代碼對字段的訪問權限:通過只實現get訪問器,使字段是只讀的;通過只實現set訪問器使字段是只寫的;同時實現get和set訪問器,則外部可對該字段進行讀寫操作。

①屬性同時包含 get 和 set 訪問器,允許任何對象讀寫該屬性。相應的任何對象也可以對該屬性所對應的字段進行讀寫操作。

 1     public class Person 2     { 3         //----------------------- 4         //可讀可寫 5         //----------------------- 6         private string name; 7         /// <summary>姓名</summary> 8         public string Name 9         {10             get11             {12                 return this.name;13             }14             set15             {16                 this.name = value;17             }18         }19     }

②屬性只包含get訪問器,省略set訪問器,則該屬性為只讀的。相應的外部代碼只能對該屬性所對應的字段進行讀操作。

 1     public class Person 2     { 3         //----------------------- 4         //只讀 5         //----------------------- 6         private string name; 7         /// <summary>姓名</summary> 8         public string Name 9         {10             get11             {12                 return this.name;13             }14         }15     }

③屬性只包含set訪問器,省略get訪問器,則該屬性為只寫的。相應的外部代碼只能對該屬性所對應的字段進行寫操作

 1     public class Person 2     { 3         //----------------------- 4         //只寫 5         //----------------------- 6         private string name; 7         /// <summary>姓名</summary> 8         public string Name 9         {10             set11             {12                  this.name=value;13             }14         }15     }

屬性可以對字段的寫操作進行有效性驗證。

 1     public class Person 2     { 3         //----------------------- 4         //有效性驗證 5         //----------------------- 6         private int age; 7         /// <summary>年齡</summary> 8         public int Age 9         {10             get11             {12                 return this.age;13             }14             set15             {16                 if (value <= 0 || value >= 150)17                 {18                     throw new ArgumentOutOfRangeException("Age", "The range of age is between 1 and 150.");19                 }20             }21         }22     }


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 庄浪县| 土默特右旗| 唐山市| 长宁区| 赣榆县| 宣恩县| 岳西县| 平利县| 阿拉善盟| 修文县| 镇坪县| 聂拉木县| 天镇县| 依安县| 西宁市| 延安市| 永靖县| 五指山市| 汕尾市| 长宁县| 长春市| 乌兰县| 松阳县| 西和县| 竹溪县| 庆安县| 六盘水市| 武邑县| 镇雄县| 江川县| 商水县| 新密市| 平和县| 双辽市| 朔州市| 榕江县| 扬中市| 长沙市| 平度市| 宾阳县| 若尔盖县|