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的初始值