在 C# 中宣告一個物件陣列
 
本文將介紹如何宣告或初始化物件陣列。使用物件陣列允許我們訪問每個物件的類方法。
C# 中的物件陣列
    
物件陣列可以以多種方式使用;它們將多種元件放在一個集合中。物件引用可以引用任何派生型別例項。
以下是 C# 中物件陣列宣告的一些示例。
在 C# 中宣告具有字串資料型別的物件陣列
語法:
employee[] e = new employee[3];
e[0] = new employee();
e[1] = new employee();
e[2] = new employee();
例子:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1 {
  class employee {
    private string empName;
    private int empId;
    private string empDesig;
    public void EmpInfo(string empName, int empId, string empDesig) {
      this.empId = empId;
      this.empDesig = empDesig;
      this.empName = empName;
    }
    public void showEmployeeDetails() {
      Console.WriteLine("\nEmployee Record: ");
      Console.WriteLine("\t    Emp Name: " + empName);
      Console.WriteLine("\t        Id  : " + empId);
      Console.WriteLine("\tDesignation : " + empDesig);
    }
  }
  class EmployeeTest {
    public static void Main() {
      employee[] e = new employee[3];
      e[0] = new employee();
      e[1] = new employee();
      e[2] = new employee();
      e[0].EmpInfo("Shan", 132, "Manager");
      e[0].showEmployeeDetails();
      e[1].EmpInfo("Casper", 131, "CEO");
      e[1].showEmployeeDetails();
      e[2].EmpInfo("Olga", 139, "Team Leader");
      e[2].showEmployeeDetails();
    }
  }
}
輸出:
Employee Record:
	    Emp Name: Shan
	        Id  : 132
	Designation : Manager
Employee Record:
	    Emp Name: Casper
	        Id  : 131
	Designation : CEO
Employee Record:
	    Emp Name: Olga
	        Id  : 139
	Designation : Team Leader
按照這些步驟,我們可以宣告一個物件陣列。
- 首先,我們必須匯入以下庫,它們是必需的。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
- 現在,建立一個名為 employee的類,在該類中,我們將宣告employee的 3 個私有資料成員。
class employee {
  private string empName;
  private int empId;
  private string empDesig;
}
- 在 employee類中建立一個名為EmpInfo()的建構函式,並分別傳遞名為empName、empId、empDesig的 3 個引數。EmpInfo()是設定employee物件的私有變數值的 setter 方法,在employee類之外無法訪問這些值。
public void EmpInfo(string empName, int empId, string empDesig) {
  this.empId = empId;
  this.empDesig = empDesig;
  this.empName = empName;
}
- 我們在 employee類中構建了showEmployeeDetails()函式來顯示’員工’的詳細資訊。我們構建了這個方法來在控制檯上顯示employee資料,因為employee變數在類外不可用。
由於此函式的可用性,我們可以直接在我們的 employee 物件上呼叫 showEmployeeDetails() 以在控制檯中顯示 employee 資料。
public void showEmployeeDetails() {
  Console.WriteLine("\nEmployee Record: ");
  Console.WriteLine("\t    Emp Name: " + empName);
  Console.WriteLine("\t        Id  : " + empId);
  Console.WriteLine("\tDesignation : " + empDesig);
}
- 我們將在 Main類中建立一個物件陣列。employee類的所有物件都將儲存在我們構建的陣列中。然後我們將建立並初始化兩個物件。
之後,我們將呼叫我們之前在 employee 類中建立的建構函式,併為我們的兩個物件的每個變數分配一個值。
然後,在我們的 employee 類中,我們將呼叫 showEmployeeDetails() 來列印我們在前面的程式碼塊中分配的每個 employee 的值。
class EmployeeTest {
  public static void Main() {
    employee[] e = new employee[3];
    e[0] = new employee();
    e[1] = new employee();
    e[2] = new employee();
    e[0].EmpInfo("Shan", 132, "Manager");
    e[0].showEmployeeDetails();
    e[1].EmpInfo("Casper", 131, "CEO");
    e[1].showEmployeeDetails();
    e[2].EmpInfo("Olga", 139, "Team Leader");
    e[2].showEmployeeDetails();
  }
}
在 C# 中宣告具有浮點和整數資料型別的物件陣列
語法:
object[] num = new object[5];
num[0] = 2.15;
num[1] = 'S';
num[2] = 27;
例子:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
class DeclareObjectArray {
  static public void Main() {
    object[] num = new object[5];
    // float value
    num[0] = 2.15;
    // Character
    num[1] = 'S';
    // integer value
    num[2] = 27;
    // null value
    num[3] = null;
    // system object
    num[4] = new object();
    foreach (var Items in num) {
      Console.WriteLine(Items);
    }
  }
}
輸出:
2.15
S
27
System.Object
在 Main 類中,我們將為此示例建立一個物件陣列。
我們建立的陣列將儲存 num 類的所有物件。然後我們將製作 5 個物件並設定它們。
之後,我們將執行我們之前建立的建構函式,併為所有例項的每個變數設定一個值。
I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.
LinkedIn