상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
궁금한 상식 보기
땅콩의 역사적 배경은 무엇인가요?
땅콩을 사용한 건강 간식은 어떤 것이 있나요?
파인애플을 이용한 전통 요리는 무엇이 있나요?
푸아그라의 영양 성분은 무엇인가요?
푸아그라의 대체재는 무엇이 있을까요?
푸아그라를 사용한 유명한 레스토랑은 어디인가요?
푸아그라의 대중화에 기여한 요리사는 누구인가요?
'사운드 오브 뮤직'에서 가장 감동적인 장면은 무엇인가요?
'그린 마일'에서 마이클의 역할은 무엇인가요?
'노틀담의 곱추'의 사회적 메시지는 무엇인가요?
주택담보대출의 상환 기간은 보통 얼마나 되나요?
주택담보대출을 이용한 부동산 투자 시 수익률 계산 방법은 무엇인가요?
Previous
Next
수정하기 - 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순위입니다.
수정하기
취소하기