zoukankan      html  css  js  c++  java
  • 重构:一个简单的IF语句

    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
        }
    }

        以上两种写法并不完全等价(你能找出来吗?),不过就当时的业务逻辑来说,这样写是没错的。

       上面的写法,还是错了,应该是这样:

    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
        }
    }
  • 相关阅读:
    C# 扩展方法使用
    C# 程序集安装与卸载
    C#截取当前活动窗体的图片
    DateTime格式
    c# asp.net 多数组索引的解决方法
    关于DataSet中Relations的应用
    datalist 分页
    ASP.NET(C#) Repeater分页的实现
    asp.net 六大对象之Request、Response
    什么是DOM
  • 原文地址:https://www.cnblogs.com/zgynhqf/p/1624442.html
Copyright © 2011-2022 走看看