c# - 如何在 c# 中的 switch case 中使用枚举组合?

标签 c#

我有以下枚举定义

public enum UploaderType
{
    BrandLogo = 0,
    ReportingLogo = 1,
    DocumentTemplate = 2,
    MModalTemplate = 3,
}

我有一个开关盒,我想在其中使用这个枚举

void FileUploadExceptionHandler(FileUploadControl.FileUploadExceptionType     exceptionType, FileUploadControl.UploaderType uploaderType)
{
    switch (uploaderType)
    {
        case FileUploadControl.UploaderType.DocumentTemplate:
            (this.Page as PageBase).SetMessage(string.Format(GetLocalResourceObject("FileExtensionError").ToString(), docIndentifier, formatAllowed(ucdocxUploadControl.SupportedFileTypes)), PageMessageType.ErrorMessage);
            break;
        case FileUploadControl.UploaderType.MModalTemplate:
            (this.Page as PageBase).SetMessage(string.Format(GetLocalResourceObject("FileExtensionError").ToString(), docIndentifier, formatAllowed(ucampUploadControl.SupportedFileTypes)), PageMessageType.ErrorMessage);
            break;
        case FileUploadControl.UploaderType.MModalTemplate|FileUploadControl.UploaderType.DocumentTemplate:
            (this.Page as PageBase).SetMessage(string.Format(GetLocalResourceObject("FileExtensionErrorForBoth").ToString(), formatAllowed(ucdocxUploadControl.SupportedFileTypes), formatAllowed(ucampUploadControl.SupportedFileTypes)), PageMessageType.ErrorMessage);
            break;
    }
}

我试图在第三种情况下使用枚举的组合,但编译器提示标签“case 3:”已经出现在这个 switch 语句中。

这个枚举不在我的控制范围内,所以我不能在它上面使用标志。请建议如何实现这一目标。

当我调用它时,我使用

 FileUploadExceptionHandler(FileUploadControl.FileUploadExceptionType.FileExtensionNotAllowed, FileUploadControl.UploaderType.DocumentTemplate | FileUploadControl.UploaderType.MModalTemplate);

最佳答案

你可以使用 fall through:

switch(enum)
{
    case MyEnum.First:
    case MyEnum.Second:
        // something
        break;
    case MyEnum.SomeThingElse:
        break;
}

关于c# - 如何在 c# 中的 switch case 中使用枚举组合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3108792/

相关文章:

c# - 负载下的 Ninject WebAPI.SelfHost 性能问题(每隔几秒出现几秒)

c# - 如何使用数据库中的数据在 C# 中创建折线图?

c# - WP Silverlight 8.1 App - 触摸时提醒不启动应用程序

c# - 匿名类型上的 ToString 如何工作?

c# - CA1001 Visual Studio 2012 代码分析警告。这是什么意思?

C# 属性用法 : only allow attributes on a property with specific data type

C#:我可以没有项目入口点吗?

c# - DbQuery 中 ObjectQuery.Parameters 的等价物是什么

c# - SocketAsyncEventArgs 示例 : How to make the sample works? 中缺少 AsyncUserToken 类

c# - 来自 Stack Overflow 的 MVC 迷你分析器(安装)