zoukankan      html  css  js  c++  java
  • 一个很实用的StringExtension

    先放出源码:

    public static class StringExtensions
    {
        // Methods
        public static TValue As<TValue>(this string value)
        {
            return value.As<TValue>(default(TValue));
        }
    
        public static TValue As<TValue>(this string value, TValue defaultValue)
        {
            try
            {
                TypeConverter converter = TypeDescriptor.GetConverter(typeof(TValue));
                if (converter.CanConvertFrom(typeof(string)))
                {
                    return (TValue) converter.ConvertFrom(value);
                }
                converter = TypeDescriptor.GetConverter(typeof(string));
                if (converter.CanConvertTo(typeof(TValue)))
                {
                    return (TValue) converter.ConvertTo(value, typeof(TValue));
                }
            }
            catch (Exception)
            {
            }
            return defaultValue;
        }
    
        public static bool AsBool(this string value)
        {
            return value.As<bool>(false);
        }
    
        public static bool AsBool(this string value, bool defaultValue)
        {
            return value.As<bool>(defaultValue);
        }
    
        public static DateTime AsDateTime(this string value)
        {
            return value.As<DateTime>();
        }
    
        public static DateTime AsDateTime(this string value, DateTime defaultValue)
        {
            return value.As<DateTime>(defaultValue);
        }
    
        public static decimal AsDecimal(this string value)
        {
            return value.As<decimal>();
        }
    
        public static decimal AsDecimal(this string value, decimal defaultValue)
        {
            return value.As<decimal>(defaultValue);
        }
    
        public static float AsFloat(this string value)
        {
            return value.As<float>();
        }
    
        public static float AsFloat(this string value, float defaultValue)
        {
            return value.As<float>(defaultValue);
        }
    
        public static int AsInt(this string value)
        {
            return value.As<int>();
        }
    
        public static int AsInt(this string value, int defaultValue)
        {
            return value.As<int>(defaultValue);
        }
    
        public static bool Is<TValue>(this string value)
        {
            TypeConverter converter = TypeDescriptor.GetConverter(typeof(TValue));
            return (((converter != null) && converter.CanConvertFrom(typeof(string))) && converter.IsValid(value));
        }
    
        public static bool IsBool(this string value)
        {
            return value.Is<bool>();
        }
    
        public static bool IsDateTime(this string value)
        {
            return value.Is<DateTime>();
        }
    
        public static bool IsDecimal(this string value)
        {
            return value.Is<decimal>();
        }
    
        public static bool IsEmpty(this string value)
        {
            return string.IsNullOrEmpty(value);
        }
    
        public static bool IsFloat(this string value)
        {
            return value.Is<float>();
        }
    
        public static bool IsInt(this string value)
        {
            return value.Is<int>();
        }
    }
    其实,这个string扩展是微软Asp.net webpages 开发中的一个辅助类,但是现在的项目没有用到asp.net webpages相关开发及其razor;该类存在于System.Web.WebPages中,如果直接引用该程序集,焉是杀鸡用牛刀?

    image

    如果自己写一个string扩展类也不难,但是我是直接通过reflector反编译过来借用了。

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    CSS选择符-----关系选择符
    CSS选择符-----元素选择符
    jQuery效果--show([speed,[easing],[fn]])和hide([speed,[easing],[fn]])
    大型网站架构系列:电商网站架构案例
    大型网站架构系列:负载均衡详解(上)
    JBOSS集群和安装
    webwork或Struts配置网站根路径的默认页面办法
    SQL Server 删除重复记录,只保留一条记录
    删除JBOSS eap4.3下的jmx-console、web-console、ws-console、status服务
    SLF4J versions 1.4.0 and later requires log4j 1.2.12 or later 终极解决
  • 原文地址:https://www.cnblogs.com/ecin/p/2423815.html
Copyright © 2011-2022 走看看