代码语言:javascript复制
private static void OldMethod(BusinessObjectInfo parentBOInfo)
{
IList<BusinessObjectsPropertyInfo> bosPropertyInfo = parentBOInfo.BOsPropertyInfos;
if ((bosPropertyInfo.Count == 1) && (null != parentBOInfo.TreeChildPropertyInfo))
{
//action one
}
else if (((bosPropertyInfo.Count > 1) && (null != parentBOInfo.TreeChildPropertyInfo))
|| ((bosPropertyInfo.Count > 0) && (null == parentBOInfo.TreeChildPropertyInfo)))
{
//action two
}
}
private static void NewMethod(BusinessObjectInfo parentBOInfo)
{
IList<BusinessObjectsPropertyInfo> childrenProperties = parentBOInfo.BOsPropertyInfos;
var childrenPropertiesCount = childrenProperties.Count;
if (childrenPropertiesCount <= 0)
{
return;
}
var hasTreeChild = null != parentBOInfo.TreeChildPropertyInfo;
if (hasTreeChild)
{
if (childrenPropertiesCount == 1)
{
//action one
}
}
else
{
//action two
}
}
以上两种写法并不完全等价(你能找出来吗?),不过就当时的业务逻辑来说,这样写是没错的。
上面的写法,还是错了,应该是这样:
代码语言:javascript复制private static void NewMethod2(BusinessObjectInfo parentBOInfo)
{
IList<BusinessObjectsPropertyInfo> childrenProperties = parentBOInfo.BOsPropertyInfos;
var childrenPropertiesCount = childrenProperties.Count;
if (childrenPropertiesCount <= 0)
{
return;
}
var hasTreeChild = null != parentBOInfo.TreeChildPropertyInfo;
if (hasTreeChild && childrenPropertiesCount == 1)
{
//action one
}
else
{
//action two
}
}