프로퍼티

CJB_ny·2022년 7월 28일
0

C#

목록 보기
17/24
post-thumbnail

프로퍼티

class MyClass
{
	private int num;
    public int Num
    {
    	get { return num; }
        set { num = value; }
    }
}

MyClass my;
my.Num = 3;

자동 구현 프로퍼티

위의 "읽고 쓰기"만 하는 프로퍼티는 논리 없이 단순하다.

이런 경우를 위해서 "자동구현 프로퍼티"를 제공한다.

class MyClass
{
	private int num;
    public int Num
    {
    	get; set;
    }
}

이렇게 읽고 쓰기만할때 이런식으로 사용가능.

또한 C# 7.0부터 프로퍼티 선언과 동시에 초기화 가능하다.

class MyClass
{
	private int num;
    public int Num { get; set; } = 123;
}

프로퍼티와 생성자

보통 객체를 만들어서 초기화를 할때

TestClass c1 = new TestClass(value1, name);

이렇게 인자를 넣어서 초기화를 했는데 (그러면 오버라이딩된 생성자가 호출이됨)

TestClass c1 = new TestClass() 
{
	Name = "김",
    Age = 22,
} // 초기화 하고싶은 부분만 프로퍼티로 초기화 가능함.

이렇게 생성자를 프로퍼티를 통해 원하는 부분만을 초기화가 가능하다.

class Info
    {
        public string Name { get; set; }
        public DateTime BirthDay { get; set; }
        public int Age
        {
            get { return new DateTime(DateTime.Now.Subtract(BirthDay).Ticks).Year; }
        }
    }

이렇게 클래스가 있다면

static void Main(string[] args)
        {
            Info a = new Info()
            {
                Name = "서현",
                BirthDay = new DateTime(1997, 10, 15)
            };

            Console.WriteLine(a.Name);
            Console.WriteLine(a.BirthDay);
            Console.WriteLine(a.Age);
        }

이런식으로 사용할 수 있다는 것이다.

초기화 전용 프로퍼티

프로퍼티랑 똑같은데 값초기화를 한번밖에 못한다.

public string Name { get; init; } 

set처럼 외부에서 값 셋팅이 가능하지만 객체를 초기화할때 만 가능하다.

profile
https://cjbworld.tistory.com/ <- 이사중

0개의 댓글