簡體   English   中英

在C#中將標志枚舉轉換為另一個標志枚舉

[英]Convert a Flag Enum to another Flag Enum in C#

我有兩個Flag枚舉,看起來像下面這樣

[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);

如上所述,這僅在使用單個標志時才有效,多個標志的使用會使其失效。

有沒有一個解決方案允許我有效地在兩個枚舉之間進行轉換?

只是施展它

EnumTypeOne a = EnumTypeOne.STUFF_ONE|EnumTypeOne.STUFF_TWO;
EnumTypeTwo b = (EnumTypeTwo)a;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM