1.設定命名空間 Namespace
- 將類別包裹在AjaxSoft.HR命名空間裡
範例:
namespace AjaxSoft.HR { public class Person { public Person() { // // TODO: 在這裡新增建構函式邏輯 // } } }
2.設定命名空間 public,private
- public-共用成員,無論是類別或類別外的程式碼都可存取選告為public的類別成員
- private-只有在成員宣告的範圍內的程式碼才能存取
範例:
public class Person { public string Name; private DateTime _birthday; }
筆者public宣告習慣將字頭大寫Name,private習慣加入底線_birthday
3.方法
[修飾元] 回傳值型別 方法名稱 (引數列) { //程式敘述句 }
- 無回傳值的方法
- 有些方法並不會回傳資料,此時可以將回傳值宣告為void,不需要使用return保留字
範例:
public class Person { public string Name; private DateTime _birthday; public void CheckName() { if(string.IsNullOrEmpty(Name)) { Name = "尚未設定名字"; } } }
- 回傳值方法
- C#應用程式使用return保留字,將運算的結果傳回到原呼叫的程式之中,return敘述所回傳的資料,必須和宣告方法時回傳值的資料型別相同
範例:
public class Person { public string Name; private DateTime _birthday; public void CheckName() { if(string.IsNullOrEmpty(Name)) { Name = "尚未設定名字"; } } public string WhoAreU() { return "我是 :" + Name; } }
- 若方法回傳值不是void,則方法至少有一個return敘述
- 方法執行到return敘述就結束了,因此,return敘述後面的程式將不會執行到
- 引數
[修飾元] 回傳值型別 方法名稱 (引數1,引數2,引數3......) { //程式敘述句 }
範例:
public class Person { public string Name; public void CheckName(string defaultName) { if(string.IsNullOrEmpty(Name)) { Name = defaultName; } } }
4.屬性
[存取修飾詞] 資料型別 屬性名稱 { get{................} set{................} }
範例:
public DateTime BirthDay { get { //屬性被讀取或參考到時執行的程式 return _birthday; } set { //屬性被寫入或設定到時執行的程式 if(value < DateTime.Now) { _birthday = value; } } }
唯讀及唯寫屬性
唯讀屬性只有設定get
唯寫屬性只有設定set
範例:
public int Age { get { return DateTime.Now.Year - BirthDay.Year + 1; } }因 Age 只有設定get,故Age 就是唯讀屬性
5.自動實作屬性
例如:Person.cs類別中的Name變數成員,當把Name這個變數成員要利用屬性,包裝起來讓外界存取,預設設計為public string namespace; public string PersonName { get { return Name; } set { Name = value; } }可改寫成
public class Person { public string Name { get; set; } }
唯讀及唯寫
在get前面加入private代表"唯寫",在set前面加入private代表"唯讀"
public class Person { public string Name { get; private set; } }
6.建構函式
如果希望在物件建立時,執行一段程式,則可在類別裡面加入建構函式(Constructor)。建構函式就是用來定義物件實體初始化方式的程式區塊,宣告的語法為
[存取修飾詞] 物件類別名稱 (引數1,引數2.....) { //建立建構式 }宣告建構函式的語法跟宣告方法的很像,但是有兩個不一樣的地方:
- 建構函式沒有回傳值
- 建構函式名稱和類別名稱相同
public class Employee { public Employee() { Name = "ASP.NET"; _birthday = DateTime.MinValue; } }
- 3~7行就是為建構式。
- 5,6行則是當物件備建立時,設定資料成員Name及_birthday的初始值
沒有留言:
張貼留言