C# でオブジェクトの配列を初期化する

Saad Aslam 2023年10月12日
  1. C#Constructor パラメーターを使用してオブジェクトの配列を初期化する
  2. コンストラクター呼び出しアクティビティを完了するための get および set メソッドを作成する
  3. C# のコンストラクタパラメータを介して配列を初期化するためのソースコード全体
C# でオブジェクトの配列を初期化する

この記事では、C# のコンストラクターパラメーターを使用してオブジェクトの配列を初期化する方法を紹介します。

C#Constructor パラメーターを使用してオブジェクトの配列を初期化する

まず、この例でそれらの関数を使用するには、System ライブラリをインポートする必要があります。

using System;

次に、パブリッククラス Person 内で、フィールド、コンストラクター、ゲッター、セッターメソッド、およびその他のメソッドを作成します。これでコンストラクター呼び出しアクティビティが完了し、出力が表示されます。

public class Person {}

Person クラス内で、persongepersonName という名前の 2つのプライベート変数を、それぞれ long と string のデータ型で宣言します。

このクラスの外部からデータにアクセスしたくないため、変数にプライベートアクセス修飾子を使用してデータが漏洩しないようにしています。

private long personAge;
private string personName;

次に、コンストラクターPerson を作成し、それをそれぞれ agename というラベルの付いた long と string のデータ型の 2つの変数に渡します。

age の値を、以前に作成した変数 personge に割り当てます。この変数を呼び出すと、age の値が割り当てられます。personName 変数も同様に処理されます。

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

この後、personge 変数のデータ型と同じ、データ型が long の別のクラス Personge を作成します。

コンストラクター呼び出しアクティビティを完了するための get および set メソッドを作成する

クラス内で、呼び出すたびに personge を返す get メソッドを作成します。また、呼び出し時に受け取った値を personge 変数に割り当てる set メソッドを作成します。

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 コンストラクターを呼び出します。

必要な値 persongepersonName を割り当てます。Person コンストラクターを 4 回呼び出し、異なる値を割り当てます。

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

これらの手順が完了したら、すべての人物の詳細を表示する必要があります。その結果、何も返さないため、戻りタイプが voidshowDetails() という新しいメソッドを作成します。

まず、このメソッドは Person's Details を表示します。次に、foreach ループを適用し、その条件部分内に変数 Detail を作成します。

ループの本体内の persons インスタンスを繰り返すために、Person の名前と年齢を表示します。

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
---------------------------
著者: Saad Aslam
Saad Aslam avatar Saad Aslam avatar

I'm a Flutter application developer with 1 year of professional experience in the field. I've created applications for both, android and iOS using AWS and Firebase, as the backend. I've written articles relating to the theoretical and problem-solving aspects of C, C++, and C#. I'm currently enrolled in an undergraduate program for Information Technology.

LinkedIn

関連記事 - Csharp Array