无法从'object'转换为'string'

时间:2014-11-24 03:28:47

标签: c#

我有以下方法:

       private string Val(object val)
       {
         int vId;
         bool isNumeric = Int32.TryParse(val, out vId);
         return string.Empty;
        }

我收到以下编译时错误:

           cannot convert from 'object' to 'string'  

5 个答案:

答案 0 :(得分:2)

尝试将字符串作为第一个参数传递。目前,当val需要字符串时,您将TryParse设置为对象。您可以将对象转换为字符串(val.toString()),但很可能您只想发送字符串以开始。

如果你想进一步查看这个代码,我会很乐意提供帮助,但是看看你问题中的几行代码,似乎你应该通过一个字符串发送第一名。

答案 1 :(得分:1)

       private string Val(string val)
       {
         int vId;
         bool isNumeric = Int32.TryParse(val, out vId);
         return string.Empty;
        }

尝试解析假定字符串不是对象,因此您必须更新输入的数据类型。

答案 2 :(得分:1)

TryParse(String, Int32)要求第一个参数是字符串而不是对象。将对象转换为字符串,然后尝试将其解析为int

试试这个

bool isNumeric = Int32.TryParse(val.ToString(), out vId);

答案 3 :(得分:0)

TryParse(String,Int32)要求第一个参数是字符串而不是对象。将对象转换为字符串,然后尝试将其解析为int

试试这个

bool isNumeric = Int32.TryParse(val.ToString(),out vId);

答案 4 :(得分:-1)

如果您要查找对象是否为数字,则可以使用is运算符。

 eg: bool isInt = o is int // Assuming o is object

您可以创建一个方法,通过让其他人像以下一样检查对象是否为数字:      o是int || o是浮动的||等等。

关于TryParse,它需要String类型(在visual studio intellisense中也会告诉你)。因此,要么将参数对象更改为字符串,要么将对象转换为字符串。