ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • C# 기초문법 정리(4) 필드, 상수
    C# 2022. 1. 22. 00:41

    C# 10.0 을 기준으로 작성.

     

    클래스를 구성하는 각 멤버에 대해서 살펴봅니다.

     

    1. 필드

    필드는 클래스 또는 구조체에서 직접 선언되는 모든 변수를 필드라고 합니다.

    인스턴스 필드, 정적 필드 둘다 가능하며,

    일반적으로 필드는 액세스 가능성이 private 또는 protected인 변수에만 사용해야 합니다.

     

    공용 속성에 의해 노출된 데이터를 저장하는 private 필드는 백업 저장소 또는 지원 필드라고 하며,

    필드는 일반적으로 둘 이상의 형식 메서드에서 액세스할 수 있고 단일 메서드의 수명보다

    오랫동안 저장되어야 하는 데이터를 저장합니다.

    예를 들어 달력 날짜를 나타내는 형식에는 각각 월, 일, 연도에 대한 세 개의 정수 필드가 있을 수 있습니다.

     

    단일 메서드 범위 내에서만 사용되는 변수는 메서드 본문 자체 내에 지역 변수 로 선언해야 합니다.

    필드의 액세스 수준을 지정한 다음 필드의 형식, 필드의 이름순으로 지정하여 클래스 또는 구조체 블록에서

    필드가 선언됩니다.

     

    public class CalendarEntry
    {

        // private field (Located near wrapping "Date" property).
        private DateTime _date;

        // Public property exposes _date field safely.
        public DateTime Date
        {
            get
            {
                return _date;
            }
            set
            {
                // Set some reasonable boundaries for likely birth dates.
                if (value.Year > 1900 && value.Year <= DateTime.Today.Year)
                {
                    _date = value;
                }
                else
                {
                    throw new ArgumentOutOfRangeException();
                }
            }
        }

        // public field (Generally not recommended).
        public string Day;

        // Public method also exposes _date field safely.
        // Example call: birthday.SetDate("1975, 6, 30");
        public void SetDate(string dateString)
        {
            DateTime dt = Convert.ToDateTime(dateString);

            // Set some reasonable boundaries for likely birth dates.
            if (dt.Year > 1900 && dt.Year <= DateTime.Today.Year)
            {
                _date = dt;
            }
            else
            {
                throw new ArgumentOutOfRangeException();
            }
        }

        public TimeSpan GetTimeSpan(string dateString)
        {
            DateTime dt = Convert.ToDateTime(dateString);

            if (dt.Ticks < _date.Ticks)
            {
                return _date - dt;
            }
            else
            {
                throw new ArgumentOutOfRangeException();
            }
        }
    }

     

    2. 상수

    간단히 설명하자면,

    프로그램이 도는 동안 변경되지 않는 고정된 값을 말하며,

    C# 기본 제공 형식(System.Object 제외)만 const로 선언할 수 있습니다.

    액세스 한정자를 같이 사용이 가능하며 다음과 같이 사용합니다.

     

    class Calendar1
    {
        public const int Months = 12;
    }

     

    const 를 사용해 정의하면 calss 에 의해서 변경되지 않는 값을 만들게 됩니다.

     

    C#에서는 const 메서드, 속성 또는 이벤트를 지원하지 않습니다.

    열거형 형식을 사용하여 정수 계열 기본 제공 형식(예: int, uint, long 등)에 대한 명명된 상수를 정의할 수 있습니다. 

     

    다음과 같이 여러개의 상수도 동시에 선언도 가능합니다.

     

    class Calendar2

    {

    public const int Months = 12, Weeks = 52, Days = 365;

    }

     

     

    반응형

    'C#' 카테고리의 다른 글

    C# 기초문법 정리(5) 반복문  (0) 2022.01.27
    C# 기초문법 정리(5) 속성  (0) 2022.01.23
    C# 기초문법 정리(3) 액세스 한정자  (0) 2022.01.21
    C# 기초문법 정리(2)  (0) 2022.01.20
    C# 기초문법 정리(1)  (0) 2022.01.20
Designed by Tistory.