• 关于C# 比较的判断


       private bool Compare(object o1, object o2)
            {
                if (o1 == null)
                {
                    if (o2 == null)
                    {
                        return true;
                    }
                    else
                    {
                        return false;
                    }
                }
                else if (o1 != null && o2 != null)
                {
                    return DataType(o1, o2);
                }
                else
                {
                    if (o1 == null && o2 != null&&o2.ToString()=="")
                    {
                        return true;
                    }
                    if (o2 == null && o1 != null && o1.ToString()=="")
                    {
                        return true;
                    }
                    return o1.Equals(o2);
                }
            }
            //GetType性能比较低
            private bool DataType(object o1, object o2)
            {
                try
                {
                    string type = o1.GetType().Name;
                    switch (type)
                    {
                        case "Int32":
                            return Convert.ToInt32(o1) == Convert.ToInt32(o2);
                        case "Double":
                            return Convert.ToDouble(o1) == Convert.ToDouble(o2);
                        case "Decimal":
                            return Convert.ToDecimal(o1) == Convert.ToDecimal(o2);
                        case "Single":
                            return Convert.ToSingle(o1) == Convert.ToSingle(o2);
                        case "Char":
                            return Convert.ToChar(o1) == Convert.ToChar(o2);
                        case "String":
                            return o1.ToString() == o2.ToString();
                        case "Boolean":
                            return Convert.ToBoolean(o1) == Convert.ToBoolean(o2);
                        case "Int16":
                            return Convert.ToInt16(o1) == Convert.ToInt16(o2);
                        case "Int64":
                            return Convert.ToInt64(o1) == Convert.ToInt64(o2);
                        default:
                            return o1 == o2;
                    }            
    
                }
                catch
                {
                    return false;
                }
            }
    //现在进行改良
            private bool DataType(object o1, object o2)
            {
                try
                {
                    IConvertible conv = o1 as IConvertible;
                    if (conv != null)
                    {
                        switch (conv.GetTypeCode())
                        {
                            case TypeCode.Boolean:
                                break;
                            case TypeCode.Byte:
                                break;
                            case TypeCode.Char:
                                break;
                            case TypeCode.DBNull:
                                break;
                            case TypeCode.DateTime:
                                break;
                            case TypeCode.Decimal:
                                break;
                            case TypeCode.Double:
                                break;
                            case TypeCode.Empty:
                                break;
                            case TypeCode.Int16:
                                break;
                            case TypeCode.Int32:
                                break;
                            default:
                                break;
                        }
                    }
                    else
                    {
     
                    }
    
                }
                catch
                {
                    return false;
                }
            }
    
    
    
     
  • 相关阅读:
    双击导航栏自动滑动ListView到顶部
    及时取消代码中的AsyncTask
    Nubia Z9 mini使用体验
    特殊情况特殊处理
    SharePreferences的DB实现
    时下手机和p2p理财的共同点
    小米空气净化器体验
    消息框架的一种实现
    刷了MIUI的手机在OSX下连接USB调试的方法
    16个最佳响应式HTML5框架
  • 原文地址:https://www.cnblogs.com/AllUserBegin/p/3806663.html
Copyright © 2020-2023  润新知