문제

속도 차이가 있을까요?

if (myInt == CONST_STATE1)

그리고

if (myEnum == myENUM.State1)

C#에서?

도움이 되었습니까?

해결책

C# enum은 어쨌든 컴파일러에 의해 상수가되기 위해 현장에 있으므로 이점은 코드 가보기성입니다.

다른 팁

열거를 사용할 때주의해야 할 것은 반사가 필요한 작업을 사용하지 않는 것입니다 (또는주의해서 사용). 예를 들어:

  1. myenumvalue.tostring ().
  2. enum.parse ()
  3. enum.isdefined ()
  4. enum.getName ()
  5. enum.getNames ()

상수의 경우, 반사가 필요한 작업을 수행하는 옵션은 존재하지 않습니다. 그러나 열거의 경우에. 그래서 당신은 이것에주의해야합니다.

열거적 검증 / 반사와 관련된 작업이 CPU 시간의 최대 5%를 차지하는 프로파일 보고서를 보았습니다 (API 메소드에 대한 모든 호출에서 열거 검증이 수행 된 시나리오). 이것은 사용되는 열거 유형의 반사 결과를 캐시하는 클래스를 작성함으로써 크게 줄일 수 있습니다.

라고 한, 디자인 관점에서 의미가있는 것에 기초하여 열거 대 상수를 사용하는 결정을 내리는 것이 좋습니다.. 이것은 팀이 반사와 관련된 운영의 성능 영향을 인식하고 있는지 확인하는 동안입니다.

또한, 나는 당신이 이것에 대해 전혀 걱정할 필요가 확실하지 않습니다. 조기 최적화처럼 들립니다. 나는 어떤 시스템에서나 열거 비교보다 더 큰 병목 현상이 있다고 확신합니다. :)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top