[1]我的类库:JCLib.Data类:提供数据类型转换相关的服务

数据类型转换是最常用的功能之一,在这里公布几个核心且非常实用的方法 .
一: public static T To<T>(object value);
看到这个方法的原型,我想就不用多说了,就是把传入的值转换成T指定的类型并输出。
        public static T To<T>(object value)
        
{
            
try
            
{
                
//对于不能顺利转换的,采用Parse方法进行构造
                switch (typeof(T).Name.ToLower())
                
{
                    
case "timespan"return (T)(object)TimeSpan.Parse(value.ToString());
                }

                
switch (typeof(T).BaseType.Name.ToLower())
                
{
                    
case "enum"return (T)Enum.Parse(typeof(T), value.ToString());
                }

                
return (T)System.Convert.ChangeType(value, typeof(T));
            }

            
catch return default(T); }
        }

要说明的是对于一些类型,如枚举、TimeSpan类型的数据需要用Parse方法来转换。这个方法的优点:可以对有继承关系的类也可以转换。
另外封装一个不重要的东西以求类型转换相关方法的完整:
        /// <summary>
        
/// 将指定值转换为指定类型
        
/// </summary>
        
/// <param name="value">要转换的值</param>
        
/// <param name="type">目标类型</param>
        
/// <returns></returns>

        public static object To(object value, Type type)
        
{
            
return Convert.ChangeType(value, type);
        }

二:字符串拆分与合并
看几个方法原形即可,一看就知道该作什么用。
public static string Join(object[] values, string separator);
public static T[] Split<T>(string input, string separator, StringSplitOptions option);
public static void Connect(ref string original, string addition, string connectWith);
第一个方法将传入的数组用指定的分隔符连接起来。它内部调用object.ToString()方法。这个方法也很常用,如int[]等类型的数据合并为用逗号隔开的字符串。
第二个方法是第一个方法的逆操作。使用了To<T>(...)方法。
第三个需要详细说明一下:
        public static void Connect(ref string original, string addition, string connectWith)
        
{
            
if (string.IsNullOrEmpty(original))
            
{
                original 
= addition;
                
return;
            }

            original 
+= connectWith + addition;
        }
有多个项要添加到串中的时候,这个方法是一个选择,比如:多个查询条件要通过 AND 操作合并起来,特别是用户自定义查询的时候,又如自定义多个排序列等。说明:对于查询条件的构造,这个不严谨,在我的DBHelper类中会有专门的构造方式。

其它:主要是编码转换的方法。如进行BASE64编码等。不再赘述。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值