Max*_*ges 0 c# type-conversion
我是C#的新手,但熟悉vb.net
我的setVendor函数需要一个int和一个字符串
为什么这样做
shopify.setVendor(System.Convert.ToInt32(reader["ProductID"]), System.Convert.ToString(reader["Vendor"]));
Run Code Online (Sandbox Code Playgroud)
但这两个参数都失败了:
shopify.setVendor(int.Parse(reader["ProductID"]), reader["Vendor"].ToString);
Run Code Online (Sandbox Code Playgroud)
非常困惑.它想要一个字符串,我给它一个字符串,但它不接受它...将字符串转换为int时出错
有一个超载Convert.ToInt32接受object.没有这样的超载int.Parse.参数必须是string 编译时的.你需要:
shopify.setVendor(int.Parse(reader["ProductID"].ToString()),
reader["Vendor"].ToString());
Run Code Online (Sandbox Code Playgroud)
(注意:从改变ToString到ToString()的第二个参数......以前你指定ToString被用来创建代表法团;改变你打电话 ToString吧.)
要么:
// This only works if the value *is* a string
shopify.setVendor(int.Parse((string) reader["ProductID"]),
reader["Vendor"].ToString());
Run Code Online (Sandbox Code Playgroud)
但是,理想情况下,您已经以正确的形式返回值,因此您可以使用:
shopify.setVendor((int) reader["ProductID"], (string) reader["Vendor"]);
Run Code Online (Sandbox Code Playgroud)
要么:
// Set up productIdColumn and vendorColumn first
shopify.setVendor(reader.GetInt32(productIdColumn), reader.GetString(vendorColumn));
Run Code Online (Sandbox Code Playgroud)
另请注意,这setVendor不是传统的.NET方法名称.
| 归档时间: |
|
| 查看次数: |
115 次 |
| 最近记录: |