■ 프로퍼티(Property) :
은닉성을 신경 쓰면 번거롭기 때문에 public을 남용하게 될 수 있음, public 필드는 외부의 접근을 허용하기 때문에 오염에 노출될 가능성이 있음, 프로퍼티(Property)는 public 필드처럼 내부 필드에 접근하게 해주는 멤버
- get / set 메서드를 통해 내부 필드에 접근
- 데이터를 출력할 때는 get 접근자
- 데이터를 입력할 때는 set 접근자
* get 접근자만 사용하면 읽기 전용 프로퍼티
* value키워드에는 프로퍼티에 선언된 데이터 형식(Data Type)과 동일한 매개변수가 입력
■ 자동 구현 프로퍼티 :
get / set 메서드 보다 간략한 구조
- 필드 이름 생략
- get접근자의 반환 문(return 필드;) 생략
- set접근자의 필드 수정(필드 = value;) 생략
■ 무명 형식 :
- public 프로퍼티로만 이루어진 이름 없는 클래스
- 형식의 선언과 동시에 인스턴스 할당
- 일회성 데이터 형식(Data Type)으로 사용
■ Example
using System;
namespace PropertyExample
{
class A_class
{
private string name;
private int num;
public string Name
{
get { return name; }
set { name = value; }
}
public int Num
{
get { return num; }
set { num = value; }
}
}
class B_Class
{
public string Name { get; set; }
public int Num { get; } = 100; // 읽기 전용, 선언과 동시에 초기화
}
class Program
{
static void Main(string[] args)
{
A_class a = new A_class() { Name = "memoo", Num = 200 };
Console.WriteLine($"[A_Class] : a.Name = {a.Name}, a.Num = {a.Num}");
B_Class b = new B_Class() { Name = "MEMOO" };
Console.WriteLine($"[B_Class] : b.Name = {b.Name}, b.Num = {b.Num}");
var tmp = new { Name = "Beboo", Num = 300 }; // 무명 형식
Console.WriteLine($"[anonymity] : tmp.Name = {tmp.Name}, tmp.Num = {tmp.Num}");
}
}
}
'개인공부 > C#' 카테고리의 다른 글
[C#] 컬렉션(Collection) (0) | 2022.09.23 |
---|---|
[C#] 배열(Array) (0) | 2022.09.22 |
[C#] 인터페이스(Interface), 추상클래스(Abstract class) (0) | 2022.09.19 |
[C#] 구조체(Struct), 튜플(Tuple) (0) | 2022.09.14 |
[C#] IS, AS (0) | 2022.09.10 |