본문 바로가기
프로그래밍언어 & 프레임워크/C#

C# 속성(Property)

by 공부하는개미 2021. 5. 20.
반응형

 

 

아래 글은 C# 속성 관련 개념 정리 및 작성자 공부를 위해 작성되었습니다.


📃 참고자료

 

  • C# 교과서(길벗 출판사) - 38단원 속성 사용하기 503 ~ 531페이지
  • 유튜브채널 VisualAcademy [C# 교과서 마스터하기 38. 속성(Property) 사용하기]

 

https://www.youtube.com/watch?v=q-vd0saLxAU 

 

 

 

❔ 속성이란

- 속성은 필드의 값을 읽거나 쓰거나 계산하는 방법을 제공하는 클래스의 속성을 나타내는 멤버입니다.

 

 

 

 

속성의 특성

 

  • 클래스 안에 선언된 필드의 내용을 설정(set)하거나 참조(get)할 때 사용하는 코드 블록을 속성이라 함
  • 개체의 필드 중에서 외부에 공개하고자 할 때 사용하는 방법
    -> private 필드를 public 속성으로

  • 개체의 성질 / 특징 / 색상 / 크기 / 모양 등을 표현

  • 자동차 개체로 비유하면 빨간색 스포츠카, 바퀴 4개 등으로 속성이 표현 가능

 

 

 

 

C# 교과서 예제코드

using System;

namespace PropertyAll
{
    public class Car
    {
        // 필드
        private string color; 

        // 생성자
        public Car()
        {
            this.color = "Black";
        }

        // 메서드로 외부에 공개
        public void SetColor(string color)
        {
            this.color = color; // this.필드 = 매개변수;
        }

        public string GetColor()
        {
            return color;
        }

        // 속성(프로퍼티;Property)
        public string Color
        {
            get
            {
                return color;
            }
            set
            {
                color = value;
            }
        }

        // 읽기전용 속성
        public string Make
        {
            get
            {
                return "한국자동차";
            }
        }

        // 쓰기전용 속성
        private string _Type;
        public string Type
        {
            set
            {
                _Type = value;
            }
        }

        // 축약형 속성
        public string Name { get; set; }
    }

    class PropertyAll
    {
        static void Main()
        {
            //[1] Set과 Get 메서드 사용
            Car car1 = new Car();
            car1.SetColor("Red");
            Console.WriteLine(car1.GetColor()); // Red

            //[2] 속성을 사용
            Car whiteCar = new Car();
            whiteCar.Color = "White"; // set {}
            Console.WriteLine(whiteCar.Color); // get {}

            //[3] 읽기전용 속성
            Car k = new Car();
            // k.Make = ""; // <- 이 코드는 에러
            Console.WriteLine(k.Make); // 읽기만 가능

            //[4] 쓰기전용 속성
            Car car = new Car();
            car.Type = "중형"; // 쓰기만 가능
            // Console.WriteLine(car.Type); // <- 이 코드는 에러: 읽기는 불가

            //[5] 축약형 속성
            Car myCar = new Car();
            myCar.Name = "좋은차";
            Console.WriteLine(myCar.Name);
        }
    }
}
반응형

'프로그래밍언어 & 프레임워크 > C#' 카테고리의 다른 글

C# 이벤트(Event)  (0) 2021.05.21
C# 대리자(Delegate)  (0) 2021.05.20
C# 예외처리하기(Exception)  (0) 2021.05.19
C# 인터페이스(Interface)  (0) 2021.05.18
WPF UI 코딩 배우기1  (0) 2021.04.25