首页 > 解决方案 > 针对我的案例进行代码重构

问题描述

重构此代码的最佳方法是什么?有没有更好的方法来重新编码这件作品?

if (doc.fldUpphandlingFilerStatus != null)
{
    if (DocumentFileStatus == Enums.FileStatus.UnpublishedNotice ||
        DocumentFileStatus == Enums.FileStatus.UnpublishedOriginalNotice ||
        DocumentFileStatus == Enums.FileStatus.UnpublishedNewNoticeWithOpicData ||
        DocumentFileStatus == Enums.FileStatus.UnpublishedNewNotice)
    {
        icon = IconType.UnpublishedNotice;
    }
    if (DocumentFileStatus == Enums.FileStatus.PublishedNotice ||
        DocumentFileStatus == Enums.FileStatus.PublishedOriginalNotice)
    {
        icon = IconType.PublishedNotice;
    }
    if (DocumentFileStatus == Enums.FileStatus.UnpublishedContractAward ||
        DocumentFileStatus == Enums.FileStatus.UnpublishedFile ||
        DocumentFileStatus == Enums.FileStatus.UnpublishedFileOtherReason)
    {
        icon = IconType.UnpublishedDocument;
    }
    if (DocumentFileStatus == Enums.FileStatus.PublishedAgreement ||
        DocumentFileStatus == Enums.FileStatus.PublishedContractAward ||
        DocumentFileStatus == Enums.FileStatus.PublishedCourtCase ||
        DocumentFileStatus == Enums.FileStatus.PublishedFile ||
        DocumentFileStatus == Enums.FileStatus.PublishedTender)
    {
        icon = IconType.PublishedDocument;
    }
    if (DocumentFileStatus == Enums.FileStatus.PublishedFileAfterTimeLimit)
    {
        icon = IconType.UnpublishedTenderingPeriod;
    }
    if (DocumentFileStatus == Enums.FileStatus.UnpublishedFileOtherReason)
    {
        icon = IconType.AlwaysUnpublished;
    }
    if (DocumentFileStatus == Enums.FileStatus.EmptyFile ||
        DocumentFileStatus == Enums.FileStatus.FileNotFound)
    {
        icon = IconType.BrokenDocument;
    }
    if (DocumentFileStatus == Enums.FileStatus.UnpublishedLink)
    {
        icon = IconType.UnpublishedLink;
    }
    if (DocumentFileStatus == Enums.FileStatus.PublishedLink)
    {
        icon = IconType.PublishedLink;
    }
}

标签: c#

解决方案


一个switch语句?

switch (DocumentFileStatus)
{
    case Enums.FileStatus.UnpublishedNotice:
    case Enums.FileStatus.UnpublishedOriginalNotice:
    case Enums.FileStatus.UnpublishedNewNoticeWithOpicData:
    case Enums.FileStatus.UnpublishedNewNotice:
        icon = IconType.UnpublishedNotice;
        break;
    case Enums.FileStatus.PublishedNotice:
    case Enums.FileStatus.PublishedOriginalNotice:
        icon = IconType.PublishedNotice;
        break;
}

推荐阅读