我需要帮助来创建方法,以便将字符串转换为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);
}
}
答案 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
。