使用C#和Java的程序猿们对tostring()这个方法都不模式。甭管是一个对象Object还是一个整数,只要tostring一下就变成字符串了,着实好用。。。
但是系统仅提供了tostring()这个方法,对于把转换成其他类型比如string转int,string转Datetime这些,需要我们用Parse或者TryParse两个方法,虽然也不复杂,但是也得写一堆的代码。。。。
对于想要偷懒的程序猿们,能不能也To一下就直接转换成想要的类型。。。
比如:ToInt,ToDatetime,ToDouble。。。。。。。各种To。。。
这就需要我们发扬懒人的智慧,通过重新想要To的类型,来实现。
以下类是我写好的,放到项目直接To就可以了,程序猿们拿走不谢。。。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace System
{
/// <summary>
/// 函数重构
/// </summary>
public static class CommConv
{
/// <summary>
/// object转换成int
/// </summary>
/// <param name="value">传入值</param>
/// <returns>转换成功:转换后的数值;转换失败:-1</returns>
public static int ToInt(this object value)
{
if (value == null) return -1;
int iRet = -1;
if (int.TryParse(value.ToString(), out iRet))
return iRet;
return -1;
}
/// <summary>
/// object型转换成int
/// </summary>
/// <param name="value">传入值</param>
/// <returns>转换成功:转换后的数值;转换失败:-1</returns>
public static int ToInt(this string value)
{
if (value == null) return -1;
int iRet = -1;
if (int.TryParse(value, out iRet))
return iRet;
return -1;
}
/// <summary>
/// object转换成DateTime
/// </summary>
/// <param name="value">传入值</param>
/// <returns>转换成功:转换后的时间;转换失败:1990/1/1 00:00:00</returns>
public static DateTime ToDateTime(this object value)
{
DateTime dt = new DateTime(1990,1,1,0,0,0);
if (value == null) return dt;
if (DateTime.TryParse(value.ToString(),out dt))
return dt;
return dt;
}
/// <summary>
/// string转换成DateTime
/// </summary>
/// <param name="value">传入值</param>
/// <returns>转换成功:转换后的时间;转换失败:1990/1/1 00:00:00</returns>
public static DateTime ToDateTime(this string value)
{
DateTime dt = new DateTime(1990, 1, 1, 0, 0, 0);
if (value == null) return dt;
if (DateTime.TryParse(value.ToString(), out dt))
return dt;
return dt;
}
}
}
上面的类里面主要对string和object进行了重构。对于string和object对象,可以直接通过ToInt和ToDateTime获得想要的整数和日期。
用起来也很容易,具体用法如下:
string sNo = "1234";
int iNo = sNo.ToInt();
string sDate = "2020/3/20";
DateTime dtDate = sDate.ToDateTime();
怎么样,是不是很简单。。。不用我们再一个一个的转换了。。。
有时候,懒到一定程度了,就成了创新