C #에서 const, readonly 및 static을 사용하는 방법

const, readonly 및 static 키워드는 C #으로 프로그래밍 할 때 자주 사용됩니다. 그러나 이러한 키워드에는 중요한 차이점이 있지만 유사성이있어 어떤 것을 사용해야하는지 알기 어렵습니다. 이 기사에서는 C #의 const, static 및 readonly 키워드, 비교 방법 및 C # 애플리케이션에서 사용하는 방법에 대해 설명합니다.

이 문서에 제공된 코드 예제를 사용하려면 시스템에 Visual Studio 2019가 설치되어 있어야합니다. 아직 복사본이없는 경우 여기에서 Visual Studio 2019를 다운로드 할 수 있습니다. 

Visual Studio 2019에서 콘솔 애플리케이션 프로젝트 만들기

먼저 Visual Studio에서 .NET Core 콘솔 애플리케이션 프로젝트를 만들어 보겠습니다. Visual Studio 2019가 시스템에 설치되어 있다고 가정하고 아래에 설명 된 단계에 따라 Visual Studio에서 새 .NET Core 콘솔 애플리케이션 프로젝트를 만듭니다.

  1. Visual Studio IDE를 시작합니다.
  2. "새 프로젝트 만들기"를 클릭합니다.
  3. "새 프로젝트 만들기"창의 표시된 템플릿 목록에서 "콘솔 앱 (.NET Core)"을 선택합니다.
  4. 다음을 클릭하십시오.
  5. 다음에 표시된 "새 프로젝트 구성"창에서 새 프로젝트의 이름과 위치를 지정합니다.
  6. 생성을 클릭합니다.

그러면 Visual Studio 2019에서 새로운 .NET Core 콘솔 애플리케이션 프로젝트가 생성됩니다.이 프로젝트를 사용하여이 문서의 후속 섹션에서 C #의 const, readonly 및 static 키워드 사용을 설명합니다.

C #에서 const 키워드 사용

C #의 const (read : constant) 키워드는 상수 변수, 즉 프로그램 수명 동안 값이 변경되지 않는 변수를 정의하는 데 사용됩니다. 따라서 선언 할 때 상수 변수에 값을 할당해야합니다.

상수 변수의이 값을 "컴파일 시간"값이라고도합니다. const 키워드를 사용하여 선언 된 변수는 컴파일 타임 상수라고도합니다. 상수 변수는 변경할 수 없습니다. 즉, 상수 변수에 할당 된 값은 나중에 변경할 수 없습니다.

다음 코드 조각은 C #에서 const 키워드를 사용하여 컴파일 시간 상수를 정의하는 방법을 보여줍니다.

const string connectionString = "여기에 데이터베이스 연결 문자열을 지정하십시오.";

정의 할 때 상수 변수에 값을 할당해야합니다. const 키워드를 사용하여 상수 개체를 만들 수 없습니다. const 키워드는 기본 데이터 유형 (예 : int, floats, chars 및 booleans) 및 문자열에만 적용 할 수 있습니다. 예를 들어 const의 사용을 이해합시다.

Author라는 다음 클래스를 고려하십시오. 간단하게 만들기 위해 Author 클래스에 몇 가지 속성 만 제공합니다.

공개 클래스 작성자

    {

        public int Id {get; 세트; }

        public string FirstName {get; 세트; }

        public string LastName {get; 세트; }

        공개 문자열 주소 {get; 세트; }

    }

이제 const 키워드를 사용하여 Author 클래스의 상수 개체를 만들려고하면 아래 그림 1과 같은 컴파일 오류를 볼 수 있습니다.

이 오류는 할당 연산자의 오른쪽에 식을 충족하기위한 상수 값이 있어야 함을 나타냅니다. 문 new Author()이 상수가 아니기 때문에 할당이 유효하지 않으므로 오류가 발생합니다.

C #에서 readonly 키워드 사용

readonly 키워드는 읽기 전용으로 변수 또는 개체를 정의하는 데 사용할 수 있습니다. 즉, 변수 또는 개체에 클래스 범위 또는 생성자에서만 값을 할당 할 수 있습니다. 생성자를 제외한 다른 메서드에서는 값을 변경하거나 값을 읽기 전용 변수 또는 개체에 다시 할당 할 수 없습니다.

예를 들어 이것을 이해합시다. DbManager라는 다음 클래스를 고려하십시오.

공용 클래스 DbManager

    {

        공용 읽기 전용 문자열 connectionString =

        "여기에 데이터베이스 연결 문자열을 지정하십시오.";

        공용 DbManager ()

        {

            connectionString = "여기에서 값을 다시 할당 할 수 있습니다.";

        }

        public void ReAssign ()

        {

            connectionString = "허용되지 않음";

        }

    }

위의 코드는 컴파일되지 않으며 그림 2와 같은 오류가 표시됩니다.

C #에서 정적 키워드 사용

C #의 static 키워드는 변수, 메서드 또는 개체에 사용할 수 있습니다. 클래스의 정적 멤버는 유형의 인스턴스가 아닌 객체 유형에 속합니다. 즉, 정적 멤버는 인스턴스 이름이 아닌 클래스 이름으로 액세스됩니다. 

정적 메서드를 포함하는 Utility라는 다음 클래스를 고려하십시오.

공용 클래스 유틸리티

    {

        public static void SomeMethod ()

        {

            // 여기에 코드 작성

        }

    }

SomeMethod()Utility 클래스의 인스턴스를 사용 하여 메서드 를 호출 할 수 없습니다 . 대신 다음 구문을 사용하여이 메서드를 호출해야합니다.

Utility.SomeMethod ();

정적 변수 또는 정적 개체에도 동일한 규칙이 적용됩니다. 아래에 표시된 구문을 사용해야 만 클래스의 정적 멤버를 참조 할 수 있습니다.

ClassName . 회원;

또는

ClassName . 회원();

클래스의 생성자는 정적 일 수 있습니다. 클래스의 정적 생성자는 클래스의 정적 멤버를 초기화하는 데 사용됩니다. 그러나 클래스의 정적 생성자는 매개 변수를받을 수 없습니다.

const, readonly 및 static에 대한 규칙

다음은 const, readonly 및 static 키워드로 작업 할 때 따를 수있는 규칙입니다. 변수에 포함 된 값이 응용 프로그램의 수명 동안 변경되지 않을 때 const 키워드를 사용합니다. 객체의 변수 값을 변경해야하는지 확실하지 않지만 다른 클래스가 값을 변경하지 못하도록하려면 readonly 키워드를 사용하십시오. 클래스의 멤버가 유형의 인스턴스가 아닌 유형에 속하도록하려면 static 키워드를 사용하십시오.

C #에서 더 많은 작업을 수행하는 방법 :

  • C #에서 데이터 주석을 사용하는 방법
  • C # 8에서 GUID를 사용하는 방법
  • C #에서 추상 클래스와 인터페이스를 사용하는 경우
  • C #에서 AutoMapper를 사용하는 방법
  • C #에서 람다 식을 사용하는 방법
  • C #에서 Action, Func 및 Predicate 대리자를 사용하는 방법
  • C #에서 대리자를 사용하는 방법
  • C #에서 간단한 로거를 구현하는 방법
  • C #에서 특성을 사용하는 방법
  • C #에서 log4net으로 작업하는 방법
  • C #에서 리포지토리 디자인 패턴을 구현하는 방법
  • C #에서 리플렉션을 사용하는 방법
  • C #에서 filesystemwatcher로 작업하는 방법
  • C #에서 지연 초기화를 수행하는 방법
  • C #에서 MSMQ를 사용하는 방법
  • C #에서 확장 메서드를 사용하는 방법
  • C #에서 람다 식 사용 방법
  • C #에서 volatile 키워드를 사용하는 경우
  • C #에서 yield 키워드를 사용하는 방법
  • C #에서 다형성을 구현하는 방법
  • C #에서 자신 만의 작업 스케줄러를 빌드하는 방법
  • C #에서 RabbitMQ로 작업하는 방법
  • C #에서 튜플을 사용하는 방법
  • C #에서 가상 및 추상 메서드 탐색
  • C #에서 Dapper ORM을 사용하는 방법
  • C #에서 플라이 웨이트 디자인 패턴을 사용하는 방법