在 C# 中宣告一個物件陣列

Muhammad Zeeshan 2023年10月12日
  1. C# 中的物件陣列
  2. C# 中宣告具有字串資料型別的物件陣列
  3. C# 中宣告具有浮點和整數資料型別的物件陣列
在 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

按照這些步驟,我們可以宣告一個物件陣列。

  1. 首先,我們必須匯入以下庫,它們是必需的。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
  1. 現在,建立一個名為 employee 的類,在該類中,我們將宣告 employee 的 3 個私有資料成員。
class employee {
  private string empName;
  private int empId;
  private string empDesig;
}
  1. employee 類中建立一個名為 EmpInfo() 的建構函式,並分別傳遞名為 empNameempIdempDesig 的 3 個引數。EmpInfo() 是設定 employee 物件的私有變數值的 setter 方法,在 employee 類之外無法訪問這些值。
public void EmpInfo(string empName, int empId, string empDesig) {
  this.empId = empId;
  this.empDesig = empDesig;
  this.empName = empName;
}
  1. 我們在 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);
}
  1. 我們將在 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 個物件並設定它們。

之後,我們將執行我們之前建立的建構函式,併為所有例項的每個變數設定一個值。

Muhammad Zeeshan avatar Muhammad Zeeshan avatar

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

相關文章 - Csharp Array