重构"if“语句的最佳方法是什么?
我的方法片段:
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;
}发布于 2013-12-23 17:57:42
我会尝试这种方法:
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);
}
}
}发布于 2013-12-23 18:28:28
Switch语句是避免多个if语句的好选择之一
发布于 2013-12-23 18:34:47
试试这个:
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;
}我知道这看起来很复杂,但这不是你想要的吗?如果你有任何疑问,请告诉我。
https://stackoverflow.com/questions/20740629
复制相似问题