C#에서 읽기 전용 속성 구현
오늘 우리는 C#에서 읽기 전용 속성을 만드는 방법을 배울 것입니다. 그래서 읽기만 가능하고 수정할 수는 없습니다.
C#
에서 초기화할 때 변수에 읽기 전용 속성 선언
우리는 마지막 두 기사에 대해 CAR
클래스에 대해 작업했습니다. 동일한 클래스를 사용하여 읽기 전용 속성을 구현해 보겠습니다. CAR
클래스에 보안을 위해 읽기 전용으로 유지하려는 maker_id
라는 속성이 있다고 가정해 보겠습니다.
class CAR {
private readonly int maker_id;
public CAR(int maker_id) {
this.maker_id = maker_id;
}
public int get_maker_id() {
return maker_id;
}
}
static void Main(String[] args) {
CAR x = new CAR(5);
Console.WriteLine(x.get_maker_id());
}
그래서 우리는 maker_id
를 readonly
로 선언했습니다. 위를 실행하면 출력은 다음과 같습니다.
5
이제 maker_id
필드에 다른 setter를 추가하려고 한다고 가정해 보겠습니다. 그러면 다음과 같이 할 수 있습니다.
public void set_maker_id(int maker_id) {
this.maker_id = maker_id;
}
그러나 이제 오류가 발생하는 것을 알 수 있습니다.
따라서 readonly
속성을 사용하면 생성자의 변수에 값을 한 번만 할당할 수 있음을 알 수 있습니다. 그렇지 않으면 접근성으로 인해 오류가 발생하고 수정을 거부하는 경향이 있습니다.
전체 코드는 다음과 같습니다.
class CAR {
private readonly int maker_id;
public CAR(int maker_id) {
this.maker_id = maker_id;
}
public void set_maker_id(int maker_id) {
this.maker_id = maker_id; // line ERROR
}
public int get_maker_id() {
return maker_id;
}
}
static void Main(String[] args) {
CAR x = new CAR(5);
Console.WriteLine(x.get_maker_id());
}
오류는 코드의 주석에 언급되었습니다.
C#
에서 간단한 get
속성을 사용하여 읽기 전용 속성 구현
maker_id
속성은 다음과 같이 작성할 수 있습니다.
private int maker_id { get; }
그리고 다음과 같이 함수를 작성하려고 하면:
public void set_val(int val) {
this.maker_id = val;
}
다음과 같이 오류가 생성됩니다.
따라서 get
속성을 설정하면 어떻게 읽기 전용이 되는지 알 수 있습니다. 전체 코드는 다음과 같습니다.
class CAR {
private int maker_id { get; }
public CAR(int maker_id) {
this.maker_id = maker_id;
}
public void set_val(int val) {
this.maker_id = val;
}
}
static void Main(String[] args) {
CAR x = new CAR(5);
}
이것은 규칙을 따를 뿐만 아니라 직렬 변환기를 깨뜨리는 경향이 있습니다. 또한 변경되지 않고 변경되지 않는 경향이 있습니다.
get
이 무언가를 반환하는지 확인하려면 다음과 같이 코드를 만드세요.
class CAR {
public int maker_id {
get { return maker_id; }
}
}
이것이 C#에서 읽기 전용을 구현하는 방법입니다.
Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!
GitHub