C# でオブジェクトの配列を宣言する
この記事では、オブジェクトの配列を宣言または初期化する方法を紹介します。オブジェクトの配列を使用すると、各オブジェクトでクラスメソッドにアクセスできます。
C#
内のオブジェクトの配列
オブジェクト配列はさまざまな方法で使用できます。それらは、多くの種類のコンポーネントを 1つのコレクションにまとめます。オブジェクト参照は、任意の派生型インスタンスを参照できます。
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
データを表示するためにこのメソッドを作成しました。
この関数を使用できるため、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
クラスのすべてのオブジェクトは、作成した配列に格納されます。次に、2つのオブジェクトを作成して初期化します。
その後、両方のオブジェクトの各変数の値を使用して、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