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

时间:2016-05-30 11:38:57

标签: c# .net

我需要帮助来创建方法,以便将字符串转换为int,如Object.ToString()方法。

    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); 
    }  
} 

3 个答案:

答案 0 :(得分:4)

您可以创建extension method

public static class EX
{
    public static int ToInt32(this object o)
    {
        if (o == null)
        {
            return default(int);
        }

        return Convert.ToInt32(o);
    }
}

答案 1 :(得分:0)

这听起来像是一个非常糟糕的主意。在创建那些所谓的extension-methods时,您应该问自己 object的每个实例是否都可以转换为int,我怀疑这是您的期望。当用户写这篇文章时你会期待什么:

ToInt("anyString");

但是你可以想到任意对象的字符串表示。因此,您最好定义一个助手类来转换您的号码,或者只是简单地调用int.Parse

答案 2 :(得分:0)

该方法已存在 - Object.GetHashCode

虽然它可能不会做你想做的事情 - 但请记住,实际上不可能做你想做的事情,而且这个方法确实为每个对象产生了一个整数。

您可能还想查看Convert.ToInt32。它会做更多您期望的事情,但它不适用于每个对象 - 在大多数情况下,您将获得InvalidCastException