C#通用類型轉換 Convert.ChangeType

來源:互聯網
上載者:User
        static public object ChangeType(object value, Type type)        {            if (value == null && type.IsGenericType) return Activator.CreateInstance(type);            if (value == null) return null;            if (type == value.GetType()) return value;            if (type.IsEnum)            {                if (value is string)                    return Enum.Parse(type, value as string);                else                    return Enum.ToObject(type, value);            }            if (!type.IsInterface && type.IsGenericType)            {                Type innerType = type.GetGenericArguments()[0];                object innerValue = ChangeType(value, innerType);                return Activator.CreateInstance(type, new object[] { innerValue });            }            if (value is string && type == typeof(Guid)) return new Guid(value as string);            if (value is string && type == typeof(Version)) return new Version(value as string);            if (!(value is IConvertible)) return value;            return Convert.ChangeType(value, type);        } 

今天在使用PetaPoco處理Nullable的時候出現了一個類型轉化的問題,雖然最後發現是資料庫類型錯誤,但在搜尋過程中找到了這個通用的類型轉換方法,覺得不錯,留下來,也希望對更多的朋友提供協助!

原文連結:http://www.cnblogs.com/genson/archive/2008/10/08/1306099.html

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.