C# Create Object.ToInt() Like Object.ToString()



我需要帮助来创建方法,以便像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

最新更新