我需要帮助来创建方法,以便像Object.ToString()方法一样轻松地将字符串转换为int。
public int Object.ToInt(){
?????????
}
请帮助我创建此方法。
我可以使用它吗?
public static class MyExtensions
{
public static int ToInt32(this object Str)
{
if (Str != null && Str.ToString().Length > 0)
{
try
{
return Convert.ToInt32(Str);
}
catch { return default(int); }
}
return default(int);
}
}
您可以创建扩展方法:
public static class EX
{
public static int ToInt32(this object o)
{
if (o == null)
{
return default(int);
}
return Convert.ToInt32(o);
}
}
该方法已经存在 - Object.GetHashCode
.
它可能不会做你想做的事情 - 但请记住,实际上不可能做你想做的事情,而且这种方法确实为每个对象生成一个整数。
您可能还想看看Convert.ToInt32
.它会做更多你期望的事情,但它不适用于每个对象 - 在大多数情况下,你会得到一个InvalidCastException
。
这听起来像是一个非常好的主意。在创建那些所谓的扩展方法时,你应该问问自己,如果object
的每个实例都可以转换为 int,我怀疑这是你所期望的。当用户写这个时,你会期待什么:
ToInt("anyString");
但是,您可以想到任意对象的字符串表示形式。因此,您最好为其定义一个用于转换号码的帮助程序类,或者干脆调用int.Parse
。