HOWTO · Csharp

在 C# 中初始化物件陣列

在本文中,解釋瞭如何在 C# 中通過建構函式引數來初始化物件陣列。

本頁內容

本文將介紹如何在 C# 中通過建構函式引數來初始化物件陣列。

在 C# 中使用 Constructor 引數初始化物件陣列

首先,我們必須匯入 System 庫以在我們的示例中使用它們的功能。

using System;

然後,在公共類 Person 中,建立欄位、建構函式、getter、setter 方法和其他方法。這將完成建構函式呼叫活動並顯示輸出。

public class Person {}

在 Person 類中,宣告兩個私有變數,分別命名為 personge 和 personName,資料型別分別為 long 和 string。

我們對變數使用私有訪問修飾符來保護我們的資料不被洩露,因為我們不希望我們的資料從這個類之外被訪問。

private long personAge;
private string personName;

然後我們將構造我們的建構函式 Person 並將其傳遞給兩個資料型別為 long 和 string 的變數,分別標記為 age 和 name。

我們將把 age 的值分配給之前在裡面建立的變數 personge,我們將分配在呼叫它時將獲得的 age 的值。personName 變數將被類似處理。

public Person(long age, string Name) {
  personAge = age;
  personName = Name;
}

之後,建立另一個類 Personge,其資料型別為 long,與我們的 personge 變數的資料型別相同。

建立 get 和 set 方法來完成建構函式呼叫活動

在類中,我們將建立一個 get 方法,每次呼叫它都會返回 personge。此外,我們將建立一個 set 方法,將呼叫它時收到的值分配給 personge 變數。

public long PersonAge {
  get { return personAge; }
  set { personAge = value; }
}

與前面的類 Personge 類似,我們將建立另一個類 PersonName,其中將建立一個 get 方法。

每次呼叫它都會返回 personName,並且 set 方法會將呼叫它時收到的值分配給 personName 變數。

public string PersonName {
  get { return personName; }
  set { personName = value; }
}

在上述這些步驟之後,Person 類將被關閉,然後,我們建立另一個公共類 BioData。

public class BioData {}

我們將在這個類中建立一個帶有變數 persons 宣告的 Person 陣列類物件。

Person[] persons;

現在,我們將建立一個公共方法 BioData(),在其中我們將初始化一個名為 persons 的 Person 陣列型別變數,並通過呼叫 Person 建構函式。

我們將分配所需的值 personge 和 personName。我們呼叫 Person 建構函式 4 次並分配不同的值。

public BioData() {
  persons = new Person[] {
    new Person(52, "Kian"),
    new Person(47, "Max"),
    new Person(19, "Franky"),
    new Person(76, "Connor"),
  };
}

完成這些步驟後,我們需要顯示所有 Person 的詳細資訊。因此,我們將建立一個名為 showDetails() 的新方法,其返回型別為 void,因為它不返回任何內容。

首先,此方法將顯示 Person's Details。然後我們應用一個 foreach 迴圈,在它的條件部分,我們建立一個變數 Detail。

這將迭代迴圈體內的 persons 例項,我們顯示個人的姓名和年齡。

public void showDetails() {
  Console.WriteLine("Person's Details\n");

  foreach (var Detail in persons) {
    Console.WriteLine("Person Name: " + Detail.PersonName);

    Console.WriteLine("Person Age: " + Detail.PersonAge);

    Console.WriteLine("---------------------------");
  }
}

現在,我們有了 int 型別的 main 方法。在 main 中,我們初始化一個變數 Data 併為其分配位於 BioData 類中的 BioData() 方法。

我們將使用 Data 來執行 showDetails() 方法,該方法將顯示 Person 的所有屬性。

public static class PersonDetail {
  static int Main(string[] args) {
    var Data = new BioData();
    Data.showDetails();
    return 0;
  }
}

C# 中通過建構函式引數初始化陣列的完整原始碼

using System;
public class Person {
  private long personAge;
  private string personName;

  public Person(long age, string Name) {
    personAge = age;
    personName = Name;
  }
  public long PersonAge {
    get { return personAge; }
    set { personAge = value; }
  }

  public string PersonName {
    get { return personName; }
    set { personName = value; }
  }
}

public class BioData {
  Person[] persons;
  public BioData() {
    persons = new Person[] {
      new Person(52, "Kian"),
      new Person(47, "Max"),
      new Person(19, "Franky"),
      new Person(76, "Connor"),
    };
  }
  public void showDetails() {
    Console.WriteLine("Person's Details\n");

    foreach (var Detail in persons) {
      Console.WriteLine("Person Name: " + Detail.PersonName);

      Console.WriteLine("Person Age: " + Detail.PersonAge);

      Console.WriteLine("---------------------------");
    }
  }
}

public static class PersonDetail {
  static int Main(string[] args) {
    var Data = new BioData();

    Data.showDetails();

    return 0;
  }
}

輸出:

Person's Details

Person Name: Kian
Person Age: 52
---------------------------
Person Name: Max
Person Age: 47
---------------------------
Person Name: Franky
Person Age: 19
---------------------------
Person Name: Connor
Person Age: 76
---------------------------