c# - 针对我的案例进行代码重构
问题描述
重构此代码的最佳方法是什么?有没有更好的方法来重新编码这件作品?
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;
}
}
解决方案
一个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;
}
推荐阅读
- javascript - 如何使搜索过滤器和下拉过滤器一起工作Javascript
- java - 如何在不为 winappdriver 创建新会话的情况下为每个测试用例启动被测应用程序
- laravel - Laravel 自动获取和绑定每个视图的值
- r - R中的串扰 - 为什么过滤器不起作用?
- r - 使用两种宽度方案读取固定宽度文件
- python - 如何在python中取消堆叠具有多个索引的列?
- php - Laravel 刀片视图未显示更新的内容
- python - 需要 Selenium 返回给定 HTML 的类标题内容
- css - 在另一个 CSS 选择器之后选择一个 div
- json - Perl - 从 decode_json 输出访问数据