개발 c의 조건부 속성은 무엇입니까? -techopedia에서 정의

c의 조건부 속성은 무엇입니까? -techopedia에서 정의

차례:

Anonim

정의-조건부 속성이란 무엇입니까?

조건부 속성은 전처리 식별자의 정의에 따라 실행되는 메소드 또는 클래스를 표시하는 데 사용되는 태그입니다.


조건부 속성은 조건부 컴파일을 지정하기위한 조건을 나타내며 여기서 기호의 정의에 따라 메소드가 선택적으로 호출됩니다. 특정 조건부 컴파일 기호의 정의 여부에 관계없이 조건에 따라 특정 코드 블록을 컴파일하거나 (Microsoft Intermediate Language로) 컴파일하지 않도록 컴파일러에 지시합니다. 호출 될 때 특정 심볼이 정의되지 않은 경우 해당 메소드 또는 클래스에 대한 호출은 컴파일러에서 무시됩니다.

Techopedia는 조건부 속성을 설명합니다

조건부 속성에는 다음과 같은 특징이 있습니다.

  • 메소드 및 클래스에 적용 할 수 있지만 속성에서 파생 된 경우에만 가능합니다.
  • 조건부 속성을 클래스에 적용하는 동안 조건부 컴파일 기호가 정의 된 경우에만 속성 클래스가 메타 데이터로 생성됩니다.
  • 컴파일을 제어하는 ​​식별자 기호 인 하나의 매개 변수를 사용합니다.
  • 조건부 메소드 또는 속성 클래스에 전달 된 인수는 컴파일러에 의해 유형 검사됩니다.
  • 런타임이 아닌 컴파일러가 완전히 처리합니다.
  • 대리자 작성 표현식에 사용 된 메소드에는 적용 할 수 없습니다.
  • 조건부 메서드에 대해 생성 된 코드에는 영향을 미치지 않지만 메서드 호출에 영향을줍니다.

조건부 속성은 선언적 프로그래밍 패턴을 제공하며 소스 코드를 쉽게 유지 관리하는 데 도움이됩니다. 메소드 레벨에서 조건부 속성을 적용하면 소스 코드를보다 쉽게 ​​읽을 수 있습니다. 메소드 호출자는 조건부 컴파일을 위해 추가 코드를 사용할 필요가 없습니다. 조건부 속성은 식별자 DEBUG를 사용하여 응용 프로그램과 관련된 진단 정보를 표시하고 기록하여 디버그 빌드에서 추적 및 로깅 기능을 활성화하는 데 사용됩니다. 또한 디버그 빌드 (개발에 사용되는 시스템)와 관련된 논리를 사이트 및 응용 프로그램에 배포 된 릴리스 빌드와 분리하는 데 도움이됩니다. 코드 복제없이 소프트웨어의 여러 에디션 (일부 에디션에서 선택한 기능 포함)을 유지하기 위해 조건부 컴파일은 단일 메인 소스 코드가 해당 애플리케이션에 대해 정의 된 각 기호를 기반으로 여러 에디션에 대해 유지되는 올바른 기술을 형성합니다.


조건부 속성을 사용하는 동안 따라야 할 규칙은 다음과 같습니다.

  • 클래스 또는 구조체 선언 내의 조건부 메서드에는 반환 유형이 void로 있어야합니다.
  • 여러 식별자를 조건부 속성으로 사용하는 동안 메소드 (들)의 포함은 정의 된 심볼에 대한 논리 OR 또는 논리 AND의 결과를 기반으로합니다.
  • 인터페이스 선언의 메소드에는 지정할 수 없습니다.
  • 조건부 메서드 앞에는 "override"키워드를 사용할 수 없지만 가상 일 수 있습니다. 재정의되는 경우 암시 적으로 조건부로 간주됩니다.
  • 조건부 컴파일에 사용되는 기호는 컴파일러 명령 줄 옵션 또는 OS 셸의 환경 변수 또는 소스 코드에서 pragma (전 처리기 지시문 "#define"사용)로 정의 할 수 있습니다.
  • C ++과 달리 C #의 기호 정의는 임의 순서로 수행 할 수 있으므로 "#define"과 조건부 메서드 사이의 순서를 올바르게 설정해야합니다.

"#if 및 #endif"의 사용은 조건부 속성에 대한 대체 옵션을 형성하지만 후자는 전자에 비해보다 깨끗하고 우아하며 오류가 발생하기 쉬운 접근 방식을 제공합니다. 내부적으로 차이점은 메서드에 조건부 특성을 사용하는 동안 메서드는 여전히 어셈블리의 일부이며로드되지 않는다는 것입니다. 그러나 #if / #endif의 경우 어셈블리 자체에는 메서드가 표시되지 않습니다.

이 정의는 C #의 맥락에서 작성되었습니다.
c의 조건부 속성은 무엇입니까? -techopedia에서 정의