답변:
baseKey choice;
if (Enum.TryParse("HKEY_LOCAL_MACHINE", out choice)) {
uint value = (uint)choice;
// `value` is what you're looking for
} else { /* error: the string was not an enum member */ }
.NET 4.5 이전에는 다음을 수행해야했는데, 오류가 발생하기 쉽고 잘못된 문자열이 전달되면 예외가 발생합니다.
(uint)Enum.Parse(typeof(baseKey), "HKEY_LOCAL_MACHINE")
var value = (uint)Enum.Parse(typeof(basekey), "HKEY_LOCAL_MACHINE", true);
이 코드 조각은 문자열에서 열거 형 값을 얻는 방법을 보여줍니다. 문자열에서 변환하려면 Enum.Parse()
3 개의 매개 변수 를 사용하는 정적 메서드 를 사용해야합니다 . 첫 번째는 고려할 열거 형 유형입니다. 구문은 키워드 typeof()
다음에 대괄호로 묶인 열거 형 클래스 이름입니다. 두 번째 매개 변수는 변환 할 문자열이고 세 번째 매개 변수는 bool
변환을 수행하는 동안 대소 문자를 무시할지 여부를 나타냅니다.
마지막으로, 참고 Enum.Parse()
실제로는 객체 참조, 명시 적으로 요구되는 열거 형 (이 변환해야한다는 것을 의미 반환 string
, int
등).
감사합니다.
대체 솔루션은 다음과 같습니다.
baseKey hKeyLocalMachine = baseKey.HKEY_LOCAL_MACHINE;
uint value = (uint)hKeyLocalMachine;
아니면 그냥 :
uint value = (uint)baseKey.HKEY_LOCAL_MACHINE;
"HKEY_LOCAL_MACHINE"
OP가 요청 했듯이 문자열 을 값으로 변환하지 않고 기호 HKEY_LOCAL_MACHINE
를 값으로 변환했습니다 . 격렬하게 다른 짐승.