我有一个IDataRecord reader我正在检索小数从如下:“指定的转换无效” decimal d = (decimal)reader[0];
出于某种原因,这将引发一个无效的转换异常说, 当我做reader[0].GetType()它告诉我,它是一个Int32。据我所知,这应该不是一个问题.... 我已经测试了这一点,这段代码工作得很好。 int i = 3750;
decimal
我刚刚将VB.NET的代码片段转换为C#,并且偶然发现了这个问题。 考虑以下代码:从编译器或运行时 Dim x As Integer = 5
Dim y As Object = x
Dim z As Decimal = CType(y, Decimal)
没有错误。 z是五。 现在让我们从编译器,但在运行时会抛出异常的代码为C# int x = 5;
object
一,两个例子: // This works
int foo = 43;
long lFoo = foo;
// This doesn't
object foo = (int)43;
long? nullFoo = foo as long?; // returns null
long lFoo = (long)foo; // throws InvalidCastException
i