我有以下枚举定义
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/