정적 클래스에서 공개 상수의 값을 변경 한 다음 어셈블리의 이전 복사본을 새로 컴파일 된 버전으로 바꾼 경우 약간 놀랍습니다. 놀랍게도 어셈블리를 참조한 기존 프로그램이 상수의 새로운 값을 선택하지 못했습니다. 즉, 실행 파일을 다시 컴파일하지 않고 대신 해당 어셈블리를 교체했습니다..NET에서 왜 JIT 시간이 아닌 컴파일 타임에 상수가 계산됩니까?
내 실험에 대한 자세한 설명은 내가이 동작에 의해 매우 놀랄로 인정한다 How constant is a constant?
이다. 무슨 일이 벌어지는 지 이해하지만 이해가 안됩니다 이유는입니다. 컴파일 타임이 아닌 JIT 시간에 상수를 선택할 수없는 특별한 기술적 인 이유가 있습니까? 그 일을하는 것이 일을 망칠 수있는 경우가 있습니까?
이 너무 많은 책, 블로그 게시물에서 논의 된 행동이다, 그래서 –
@Lex : 사실 그 놀라운 일이 아니다 :
내가 이렇게 내 고정 소수점 형식이 사용 이상하게, I 이전에 토론을 한 번도 해보지 않았습니다. 나는 아직도 왜 그런지 궁금해. –나는 아직도 그것을 사용하는 어셈블리로 굽는 이점이 무엇인지 모르겠다. – CodesInChaos