在 C# 中初始化对象数组

Saad Aslam 2023年10月12日
  1. C# 中使用 Constructor 参数初始化对象数组
  2. 创建 getset 方法来完成构造函数调用活动
  3. C# 中通过构造函数参数初始化数组的完整源代码
在 C# 中初始化对象数组

本文将介绍如何在 C# 中通过构造函数参数来初始化对象数组。

C# 中使用 Constructor 参数初始化对象数组

首先,我们必须导入 System 库以在我们的示例中使用它们的功能。

using System;

然后,在公共类 Person 中,创建字段、构造函数、getter、setter 方法和其他方法。这将完成构造函数调用活动并显示输出。

public class Person {}

Person 类中,声明两个私有变量,分别命名为 persongepersonName,数据类型分别为 long 和 string。

我们对变量使用私有访问修饰符来保护我们的数据不被泄露,因为我们不希望我们的数据从这个类之外被访问。

private long personAge;
private string personName;

然后我们将构造我们的构造函数 Person 并将其传递给两个数据类型为 long 和 string 的变量,分别标记为 agename

我们将把 age 的值分配给之前在里面创建的变量 personge,我们将分配在调用它时将获得的 age 的值。personName 变量将被类似处理。

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

之后,创建另一个类 Personge,其数据类型为 long,与我们的 personge 变量的数据类型相同。

创建 getset 方法来完成构造函数调用活动

在类中,我们将创建一个 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(),在其中我们将初始化一个名为 personsPerson 数组类型变量,并通过调用 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"),
  };
}

完成这些步骤后,我们需要显示所有 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
---------------------------
作者: 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