상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - C#에서 커스텀 속성을 만드는 방법은?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
C 에서 커스텀 <a href='https://sangseek.com/sangseeks/속성/ko'>속성</a>을 만드는 것은 객체 지향 프로그래밍에서 매우 유용한 기능입니다. 커스텀 속성을 사용하면 클래스의 필드에 대한 접근을 제어하고, 데이터 유효성 검사, 변경 알림 등을 구현할 수 있습니다. 이 글에서는 C 에서 커스텀 속성을 만드는 방법에 대해 자세히 설명하겠습니다. 1. 속성의 기본 구조 C 에서 속성은 일반적으로 `get` 및 `set` 접근자를 포함합니다. `get` 접근자는 속성의 값을 반환하고, `set` 접근자는 속성의 값을 설정합니다. 기본적인 속성의 예는 다음과 같습니다. ```csharp public class Person { private string name; public string Name { get { return name; } set { name = value; } } } ``` 위의 예제에서 `Name` 속성은 `name` 필드에 대한 접근을 제공합니다. 2. 커스텀 속성 만들기 커스텀 속성을 만들기 위해서는 `get` 및 `set` 접근자 내에서 추가적인 로직을 구현할 수 있습니다. 예를 들어, 속성에 값을 설정할 때 유효성 검사를 추가할 수 있습니다. ```csharp public class Person { private string name; public string Name { get { return name; } set { if (string.IsNullOrWhiteSpace(value)) { throw new ArgumentException("Name cannot be empty."); } name = value; } } } ``` 위의 예제에서는 `Name` 속성에 값을 설정할 때, 값이 비어있거나 공백인 경우 <a href='https://sangseek.com/sangseeks/예외/ko'>예외</a>를 발생시킵니다. 3. 자동 구현 속성 C 에서는 자동 구현 속성을 사용하여 간단하게 속성을 정의할 수 있습니다. 자동 구현 속성을 사용하면 필드를 명시적으로 선언할 필요 없이 속성을 정의할 수 있습니다. ```csharp public class Person { public string Name { get; set; } } ``` 자동 구현 속성은 기본적으로 `private` 필드를 생성하며, `get` 및 `set` 접근자를 자동으로 제공합니다. 4. 읽기 전용 및 쓰기 전용 속성 속성을 읽기 전용 또는 쓰기 전용으로 만들 수 있습니다. 읽기 전용 속성은 `get` 접근자만 제공하고, 쓰기 전용 속성은 `set` 접근자만 제공합니다. ```csharp public class Person { private string name; public string Name { get { return name; } } public Person(string name) { this.name = name; } } ``` 위의 예제에서 `Name` 속성은 읽기 전용입니다. 생성자를 통해서만 값을 설정할 수 있습니다. 5. 속성 변경 알림 속성이 변경될 때 알림을 받을 수 있도록 구현할 수도 있습니다. 이를 위해 `INotifyPropertyChanged` 인터페이스를 사용할 수 있습니다. 이 인터페이스는 속성이 변경될 때 이벤트를 발생시킵니다. ```csharp using System.ComponentModel; public class Person : INotifyPropertyChanged { private string name; public event PropertyChangedEventHandler PropertyChanged; public string Name { get { return name; } set { if (name != value) { name = value; OnPropertyChanged(nameof(Name)); } } } protected void OnPropertyChanged(string propertyName) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } } ``` 위의 예제에서 `Person` 클래스는 `INotifyPropertyChanged` 인터페이스를 구현하고, `Name` 속성이 변경될 때 `PropertyChanged` 이벤트를 발생시킵니다. 6. 속성의 접근 제<a href='https://sangseek.com/sangseeks/한자/ko'>한자</a> 속성의 접근 제한자를 사용하여 속성의 접근성을 제어할 수 있습니다. 예를 들어, 속성을 `private`로 설정하면 클래스 외부에서 접근할 수 없습니다. ```csharp public class Person { public string Name { get; private set; } public Person(string name) { Name = name; } } ``` 위의 예제에서 `Name` 속성은 `private set`으로 설정되어, 외부에서 값을 변경할 수 없습니다. 결론 C 에서 커스텀 속성을 만드는 것은 객체 지향 프로그래밍의 중요한 부분입니다. 속성을 사용하면 데이터의 캡슐화, 유효성 검사, 변경 알림 등을 구현할 수 있습니다. 위에서 설명한 다양한 방법을 통해 필요에 맞는 속성을 설계하고 구현할 수 있습니다. 이러한 속성들은 코드의 가독성을 높이고, 유지 보수를 용이하게 하며, 데이터의 무결성을 보장하는 데 도움을 줍니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기