屬性可以是 類(class)、結構(struct)、介面(inte***ce)的命名成員,他提供靈活的機制來讀取、寫入、或計算私有(private)欄位的值,屬性可以看作是公共(public)欄位的成員,但他實際上是定義了乙個「訪問器」的特殊方法讓私有欄位的值可以被讀寫或操作。
說的形象點吧,比如我們定義乙個person類裡面有乙個私有成員 private string name; 在外界我們例項化乙個person物件per,要求為per起個名字,並且輸出這個名字,也就是為per.name賦乙個值,然後輸出??經過前面的學習我們知道,類中的private修飾的變數外界物件是訪問不到的,(無法直接per.name="hc666"來搞定^_^) 因此只能在類裡面定義乙個public修飾的setname與getname方法將「hc666」作為引數來進行寫入與輸出,這樣有點繁瑣,這個時候「屬性」就該登場了,我們為name定義乙個讀寫屬性name就可以彌補這個不足。
屬性的訪問器包含有獲取或者設定屬性的可執行語句,訪問器的宣告可包含乙個get訪問器(表示唯讀),或者乙個set訪問器(表示只寫),或者兩個同時包含(表示可讀可寫)。(上面的例子中我們使用get訪問器輸出name,使用set訪問器寫入)
上面的例子中我們可以為name 定義乙個讀寫屬性name,使用外界物件能夠訪問的public修飾符
private string name;
//宣告name變數
public string name //宣告變數的屬性,讀寫
//定義讀訪問器,其實就是乙個方法
set //定義寫訪問器,set 方法有乙個隱含的引數value }
再定義乙個唯讀屬性吧,比如我們的年齡 age 是固定的唯讀
private uint age=10; //宣告變數 age
private string
age//宣告變數的屬性,唯讀
//讀訪問器 }
using system;
using system.collections.generic;
using system.linq;
using system.text;
namespace test1
set //set自帶乙個value引數
}//定義變數age,並且為age定義乙個唯讀屬性
private uint age=10;
public uint age}}
class program
\t今年 歲了",per.name,per.age); //讀屬性}}
}
結果:
前面也說了,屬性可以使類、結構、介面的成員,自然也可以是抽象類的抽象屬性了,抽象屬性同抽象方法一樣在派生類中被實現。
using system;
using system.collections.generic;
using system.linq;
using system.text;
namespace test1
public abstract uint age
}//定義派生類
class student : person
set}
public override uint age}}
class program
\t今年 歲了",stu.name,stu.age); //讀屬性}}
}
結果與上乙個例子是一樣的。 C 學習日記
1611 3 李旗偉 2016年10月5日 連續5天總結 內容a.概括 a 運算子與表示式80 b 流程控制語句45 b.具體內容 在進行了對運算子與表示式的學習後,嘗試了簡單的資料輸入,但結果總是出人預料,自認為會成功的每次運算失敗,搞得我都快失去信心了,還好我知道凡事要堅持,只因心中有夢,才堅持...
C 學習日記
1611 3 李旗偉 2016年10月6日 連續6天總結 內容a.概括 a 程式的基本控制結構95 b 選擇結構60 b.具體內容 以昨天所學為基礎,今日了另乙個世界的學習 流程控制結構。今天,主要學習了程式的基本控制結構,對此已有了基本的認識,並且嘗試了輸入,也小有成績。此外,還對選擇結構進行了淺...
C 學習日記
1611 3 李旗偉 2016年10月7日 連續7天總結 內容a.概括 a 選擇結構100 b 迴圈結構80 c 控制執行順序的語句40 b.具體內容 今天,首先將昨天的殘留完成了 選擇結構,其次,學習了迴圈結構,並基本掌握其知識要領,然後簡單地進行了控制執行順序的語句的粗略了解,雖然幾乎沒弄清楚,...