System.convert.ToString()vs c#中的显式类型转换

时间:2012-03-12 06:36:37

标签: c# java string typecasting-operator

我正在研究C#中的一个小项目(实际上,移动了几个星期到.Net)我遇到了以下情况,

 str = System.Convert.ToString(
                        (sheetRange.Cells[rcnt, ccnt] as Excel.Range).Value2);

在上面的代码中,我试图从excel表读取到String。最初,我尝试了以下操作,

 str = (string) ((sheetRange.Cells[rcnt, ccnt] as Excel.Range).Value2);

导致运行时错误,无法将“System.Double”类型的对象强制转换为“System.String”。发现了InValidException。

我用谷歌搜索了两者之间的区别,但是得不到多少。我有点纠结于此。所以我的问题如下,

1)两者之间的区别是什么,更具体地说,显式类型转换和使用system.convert之间有什么区别?这适用于所有类型吗?

2)这在Java中是否相同,如果它与它相当呢?

我更新了以显示在使用字符串进行投射时我到底得到了什么。我将Double转换为字符串时出现异常。但是,将Double转换为字符串Works。现在我的问题是为什么它不允许将double转换为字符串,同时它允许将double转换为字符串。我希望我能说清楚。

请原谅我,如果它是一个简单的,如果我已经看了一些关于类型铸造的基本观点。

提前致谢。

1 个答案:

答案 0 :(得分:4)

在回答问题的第一部分时: Casting 转换是两回事。 我不是Java开发人员,但我怀疑它在Java中是一样的。

MSDN有一篇文章详细解答了这个问题:Casting and Type Conversions (C# Programming Guide)