C#使用属性
我們通常把字段定義為私有的,屬性定義為公共的,通過屬性訪問字段。定義一個屬性時,類型必須和它所訪問的字段一致。
例如:姓名_name為string類型,那么它對應的屬性Name也一定是string類型。
注意:屬性不是必須和字段相關聯的,但是沒有字段單獨定義屬性沒有任何意義。屬性定義時屬性名后邊沒有小括號,set{}和get{}訪問器也都是大括號,不是小括號。
屬性本質上是方法,只是與方法不同。可以實例化對象后給屬性賦值,也可以取值,只調用屬性即可。不需要訪問其中的訪問器。
using System;
class User
{
//設為私有的
private string name;
private string sex;
//設置屬性Name
public string Name
{
??? //在屬性Name里面聲明了2個方法一個是get一個是set
??? //這2個方法沒有任何的修飾符,而這2個方法實現的功能跟SetName和GetName完全一樣
??? get
??? {
????? return name;
??? }
??? set
??? {
????? //大家注意這個value,它是一個隱含的參數
????? //也就是說IL代碼會自動幫你生成一個value這么一個參數,我們可以直接調用它
????? //value就先當于SetName里面的values參數
????? //value的類型是跟私有字段name的類型是一致的
????? name = value;
??? }
}
//設置一個屬性Sex
public string Sex
{
??? get
??? {
????? return sex;
??? }
??? set
??? {
????? if (value == "男" || value == "女")
????? {
??????? sex = value;
????? }
????? else
????? {
??????? Console.WriteLine("性別只能為“男”或“女”");
????? }
??? }
}
}
class Property
{
??? static void Main()
??? {
????? User zs = new User();
????? //調用屬性
????? zs.Name = "李四";
????? zs.Sex = "牛";
????? Console.WriteLine("姓名:" + zs.Name + " 性別:" + zs.Sex);
??? }
}
轉載于:https://www.cnblogs.com/tanding/archive/2012/06/27/2564849.html
總結
- 上一篇: 【图】架构设计的10条经验
- 下一篇: c# char unsigned_dll