首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重构if语句

重构if语句
EN

Stack Overflow用户
提问于 2013-12-23 17:33:17
回答 3查看 112关注 0票数 0

重构"if“语句的最佳方法是什么?

我的方法片段:

代码语言:javascript
复制
if (code == SystemCode.Enum1.ToString())
{
    user.IsEnum1 = result != null;
}

if (code  == SystemCode.Enum2.ToString())
{
    user.IsEnum2 = result != null;
}

if (code  == SystemCode.Enum3.ToString())
{
    user.IsEnum3 = result != null;
}
EN

回答 3

Stack Overflow用户

发布于 2013-12-23 17:57:42

我会尝试这种方法:

代码语言:javascript
复制
enum MyEnum
{
    Enum1, 
    Enum2, 
    Enum3
}

class User
{
    Dictionary<MyEnum, bool> enumList;

    public void InitEnumList()
    {
        enumList = new Dictionary<MyEnum, bool>();
        foreach (var item in Enum.GetValues(typeof(MyEnum)))
        {
            //Set the default key-value pairs
            enumList.Add((MyEnum)item, false);
        }
    }
}
票数 0
EN

Stack Overflow用户

发布于 2013-12-23 18:28:28

Switch语句是避免多个if语句的好选择之一

票数 0
EN

Stack Overflow用户

发布于 2013-12-23 18:34:47

试试这个:

代码语言:javascript
复制
if ((  !(code != ((int)SystemCode.Enum1).ToString() || (user.IsEnum1 = result != null).ToString().Length > 0))
    || !(code != ((int)SystemCode.Enum2).ToString() || (user.IsEnum2 = result != null).ToString().Length > 0)
    || !(code != ((int)SystemCode.Enum3).ToString() || (user.IsEnum3 = result != null).ToString().Length > 0))
    {
        return;
    }

我知道这看起来很复杂,但这不是你想要的吗?如果你有任何疑问,请告诉我。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20740629

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档