C# System.convert.ToString()与c中的显式类型转换#
我在C#做一个小项目(实际上,我搬到了.Net)时遇到了以下情况:C# System.convert.ToString()与c中的显式类型转换#,c#,java,string,typecasting-operator,C#,Java,String,Typecasting Operator,我在C#做一个小项目(实际上,我搬到了.Net)时遇到了以下情况: str = System.Convert.ToString( (sheetRange.Cells[rcnt, ccnt] as Excel.Range).Value2); 在上面的代码中,我试图从excel工作表读取字符串。起初,我试着做以下几点 str = (string) ((sheetRange.Cells[rcnt, ccnt] as Excel.Range).Val
str = System.Convert.ToString(
(sheetRange.Cells[rcnt, ccnt] as Excel.Range).Value2);
在上面的代码中,我试图从excel工作表读取字符串。起初,我试着做以下几点
str = (string) ((sheetRange.Cells[rcnt, ccnt] as Excel.Range).Value2);
这导致运行时错误,无法将“System.Double”类型的对象强制转换为“System.String”类型。无效异常被捕获
我用谷歌搜索了一下,想找出两者之间的区别,但没能找到多少。我有点纠结于此。所以我的问题如下,
str = (string) ((sheetRange.Cells[rcnt, ccnt] as Excel.Range).Value2);
1) 这两者之间的区别是什么,更具体地说,显式类型转换和使用system.convert之间的区别是什么?这是否适用于所有类型
2) 这在Java中是相同的吗?如果是,它的等价物是什么
当我用字符串进行转换时,我更新以显示我得到的确切信息。当我对字符串进行双精度转换时,出现异常。但是,将Double转换为字符串是可行的。现在我的问题是为什么它不允许将double转换为字符串,而允许将double转换为字符串。我希望我说清楚了
请原谅我,如果这是一个简单的一个,如果我有过度看了一些基本点关于类型铸造
提前感谢。回答问题的第一部分:铸造和转化是两件不同的事情。 我不是Java开发人员,但我怀疑在Java中也是如此
MSDN有一篇文章详细回答了这一问题:在回答您问题的第一部分时:铸造和转换是两件不同的事情。 我不是Java开发人员,但我怀疑在Java中也是如此
MSDN有一篇文章详细回答了这一问题:最好知道运行时错误,这更像是Excel中的一个问题。范围部分,请更新详细信息一个是转换某些内容的函数,另一个是非法强制转换。@V4Vendetta我更新了问题,我无法将对象转换为字符串。@BrianRoach您能详细说明一下吗?@hemanth它只是
对象
还是对象[]
,我不是很确定,但可能它返回了一个数组,另一方面,当您将用作时,最好检查您得到的范围是否为空,否则会出现一个错误。最好了解运行时错误,这更像是Excel中的问题。范围部分,请更新详细信息。有一个函数可以转换某些内容,另一个是非法施法。@V4Vendetta我更新了问题,我得到的是无法将对象转换为字符串。@BrianRoach你能详细说明一下吗?@hemanth它只是对象
还是对象[]
,我不是很确定,但可能它返回了一个数组,另一方面,当您使用as
时,最好检查您得到的范围
是否为空,否则会出现一个错误。因此,我所要求的属于第三类;由于是不兼容的类型,因此我们需要使用system.convert.toString()。我说的对吗?所以我所要求的属于第三类;由于是不兼容的类型,因此我们需要使用system.convert.toString()。我说得对吗?