我打算发表评论,但 GrahamS 所说的非常重要,足以保证对这一点进行一些详细说明。
当您特别希望能够设置倍数时,通常使用标志。这是我们的任务枚举的示例
namespace Shared.Enumerations
{
    [Flags]
    public enum TaskStatusEnum
    {
        NotSet = 0,
        Open = 1,
        Canceled = 2,
        Complete = 4,
        OnHold = 8,
        Inactive = 32,
        All = Open | Canceled | Complete | OnHold | Inactive
    }
} 
我们这样做是为了让我们可以说给我们任何打开或暂停的任务。
 TaskList activeTasks = taskListManager.TaskList.FindAll(target.Name, target.TaskType, (TaskStatusEnum.Open | TaskStatusEnum.OnHold));
当然,对于普通枚举,您一次只能设置一件事。您实际上可以执行以下操作。
[TestMethod]
public void checkEnumVals()
{
        var ts = TaskStatusTestEnum.Open;
        ts |= TaskStatusTestEnum.OnHold;
        bool matchBoth = false;
        if ((ts & TaskStatusTestEnum.OnHold) == TaskStatusTestEnum.OnHold && (ts & TaskStatusTestEnum.Open) == TaskStatusTestEnum.Open)
           matchBoth = true;
        Assert.IsTrue(matchBoth);
}
我不会建议这样的事情。