为什么我收到“System.InvalidCastException:指定的强制转换无效”?

时间:2018-02-08 01:35:04

标签: c# xamarin.forms cross-platform

此代码用于使用System.Data.SqlClient中的C#SqlDatAdapter从SQL服务器获取我的库应用程序中的所有书籍。这是将所有书籍添加到List<Book>,其中书是声明的对象类。

allBooks.Add(new Book((String)i["title"], (String)i["author"], (Boolean)i["checkedOut"], (String)i["checkedOutTo"], (DateTime)i["dueDate"], (Double)i["Dues"], (int)i["extensions"], (String)i["imageURL"], (String)i["description"]));

1 个答案:

答案 0 :(得分:1)

当你有这个引用时,你必须将该单行分成多个代码行。使用临时变量来存储每个数组访问+强制转换操作的其余部分。这样你就会得到一个有意义的行/操作,这就是问题所在。像这样:

<?php
$myID = "8125987";
$myVarible = "This is a test";
$service_url = "https://...?password=123&user=123&storeid=1000&mobile=$myID&message=$myVarible";
$curl = curl_init($service_url);
$result = curl_exec($curl);
curl_close($curl);
echo $result;
?>

不要担心这会对性能或内存产生任何影响。普通和JiT编译器非常擅长弄清楚它可以在发布版本中删除那些变量。有时即使在Debug构建中它们也很好,强制异常也很困难。