2
[Flags]
public enum EnumTypeOne: ulong
{
NONE = 0,
STUFF_ONE = (1 << 0),
STUFF_TWO = (1 << 1)
}
[Flags]
public enum EnumTypeTwo: ulong
{
NONE = 0,
STUFF_ONE = (1 << 0),
STUFF_TWO = (1 << 1)
}
하나 열거 형 (내부 전용) 하나의 클래스 라이브러리 내부이고, 다른 하나는로 제공됩니다 다음
같은 모양이 신고 열거가 dll.내부적으로이 두 열거 형이 동일하기 때문에 내부적으로 마샬링하고 싶습니다. 나는 일반 열거 형을 사용하여이 작업을 수행하는 방법을 알고 있지만 열거 형 중 하나에 둘 이상의 플래그가 설정된 경우에는 작동하지 않는 것처럼 보입니다.
나는 그것이 떨어지 단 하나의 플래그가 사용중인 경우에만 이렇게 위에서 언급 한 바와 같이
var enumResult = (EnumTypeOne)Enum.Parse(typeof(EnumTypeOne), Enum.GetName(typeof(EnumTypeTwo), mEnumTypeTwo);
는 여러 개의 플래그의 사용이 호출하는 다음과 같은 솔루션을 사용하여 시도했다.
두 열거 형을 효율적으로 변환 할 수있는 솔루션이 있습니까?
덕분에 캐스팅, 그것은이 간단 할 것이라고 생각하지 않았다! –
@const_ref : enum은 밑에있는 정수이기 때문에 값이 같은 것을 의미하면 그대로 둘 사이를 변환하는 것이 안전합니다. – siride
@siride 나는 이것이 후드 밑의 ulong이라는 것을 알았지 만, 열거 형을 enum으로 변환 할 때 과거에 어려움을 겪었고 실제로는 그렇게 간단하지 않다고 생각했다. 건배 –