C#에서 개체 배열 초기화
-
Constructor
매개변수를 사용하여C#
에서 개체 배열 초기화 -
생성자 호출 활동을 완료하기 위해
get
및set
메소드 생성 -
C#
의 생성자 매개변수를 통해 배열을 초기화하는 전체 소스 코드
이 문서에서는 C#에서 생성자 매개 변수를 통해 개체 배열을 초기화하는 방법을 소개합니다.
Constructor
매개변수를 사용하여 C#
에서 개체 배열 초기화
먼저 이 예제에서 해당 기능을 사용하려면 System
라이브러리를 가져와야 합니다.
using System;
그런 다음 공용 클래스 Person
내에서 필드, 생성자, getter, setter 메서드 및 기타 메서드를 만듭니다. 그러면 생성자 호출 활동이 완료되고 출력이 표시됩니다.
public class Person {}
Person
클래스 내에서 각각 데이터 유형이 long 및 string인 personge
및 personName
이라는 두 개의 개인 변수를 선언합니다.
이 클래스 외부에서 데이터에 액세스하는 것을 원하지 않기 때문에 누출로부터 데이터를 안전하게 유지하기 위해 변수에 대해 개인 액세스 수정자를 사용하고 있습니다.
private long personAge;
private string personName;
그런 다음 생성자 Person
을 구성하고 각각 age
및 name
이라는 레이블이 붙은 데이터 유형 long 및 string의 두 변수에 전달합니다.
age
값을 내부에 이전에 생성된 변수 personge
에 할당하고 호출 시 얻을 age
값을 할당합니다. personName
변수도 유사하게 처리됩니다.
public Person(long age, string Name) {
personAge = age;
personName = Name;
}
그런 다음 personge
변수의 데이터 유형과 동일한 데이터 유형이 긴 Personge
라는 또 다른 클래스를 만듭니다.
생성자 호출 활동을 완료하기 위해 get
및 set
메소드 생성
클래스 내에서 호출할 때마다 personge
를 반환하는 get
메서드를 만들 것입니다. 또한 호출할 때 받은 값을 personge
변수에 할당하는 set
메서드를 생성합니다.
public long PersonAge {
get { return personAge; }
set { personAge = value; }
}
이전 클래스 Personge
와 유사하게 get
메소드가 생성될 또 다른 클래스 PersonName
을 생성합니다.
이것은 호출될 때마다 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
생성자를 호출합니다.
필수 값 personge
및 personName
을 할당합니다. Person
생성자를 4번 호출하고 다른 값을 할당합니다.
public BioData() {
persons = new Person[] {
new Person(52, "Kian"),
new Person(47, "Max"),
new Person(19, "Franky"),
new Person(76, "Connor"),
};
}
이 단계가 완료되면 모든 Person의 세부 정보를 표시해야 합니다. 결과적으로 우리는 반환 유형이 void
인 showDetails()
라는 새 메서드를 생성할 것입니다. 왜냐하면 아무 것도 반환하지 않기 때문입니다.
먼저 이 방법은 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
를 사용하여 Person의 모든 속성을 표시하는 showDetails()
메서드를 실행합니다.
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
---------------------------
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