在這裡,會介紹C#的Class 及 Object基本用法

Class基本架構

物件導向開發時,會運用class來作為資料型別

這時,class就好像一個大類別,在這裡面,開發者通常會將具有關聯性的成員(Object、Methods、variable..)統合起來

例如,當我們建立一個管理使用者class,裡面可能就會包含使用者相關的 Methods,如: 檢視、新增、刪除、編輯 …等

並且,在class中設定成員的權限:

權限 說明
public 可以任意引用
protected 只能在class內引用,且可被繼承
private 只能在class內引用,但不能被繼承

建立class的方式:

/*
class Class名稱{ 
  //變數、物件、方法...
  權限 void Method名稱(){
  
  }
}
*/
class User
{
  protected int phone;
  public string name;
  public void View()
  {
    Console.WriteLine("Show users list");
  }
}

呼叫Class及使用內部方法(methods)

建立好 Class 後,透過new運算符來實例化(Instantiate) Class,再透過句點(.)運算符來呼叫成員:

Class名稱  變數 = new Class名稱();
變數.Method名稱();

例如:

//建立 User 類別
class User
{
    int phone;
    public string name;
    //建立方法 View()
    public void View()
    {
        Console.WriteLine("Your name is :"+ name);
        Console.WriteLine("Show users list");
    }
}

static void Main(string[] args)
{
    //實例化User類別
    User x = new User();
    //呼叫User內的變數,並儲存值
    x.name = "Hi";
    //呼叫User內的方法
    x.View();
}

C# 靜態類別 - Static

在這裡,特別說明 C# 的靜態類別(static) 一開始,介紹C# 都會提到必須包含一個Main Methods 不知道你有沒有留意到 Main 就有宣告 static

static void Main(string[] args)

static 可以宣告的成員包含 變數(Variables)、屬性(Properities)、方法(Methods) 他的特性是: 一旦宣告之後,不管物件被實體化幾次、或者方法被呼叫幾次,使用的都會是同一個static成員

例如:

static void Main(string[] args)
{
	  //這裡會做三次實體化
    Member x = new Member();
    x.Add();// 結果 1
    Member y = new Member();
    y.Add();// 結果 2
    Member z = new Member();
    z.Add();// 結果 3

    x.Add();// 結果 4
    y.Add();// 結果 5
    z.Add();// 結果 6
}
class Member
{
		//將 count 設定為靜態類別
    public static int count = 0;
    public void Add()
    {
        count++;
        Console.WriteLine("不管你怎麼new,呼叫的都是同一個count: "+count);
    }
}