![](/img/trans.png)
[英]Error: System.InvalidCastException: Unable to cast object of type 'System.Byte' to type 'System.Int32'
[英]Object to byte — System.InvalidCastException
為您的RPA機器人之一編寫C#函數時,出現了“ System.InvalidCastException”。 在VS 2015中編譯相同的代碼,不會發生異常。
編碼:
try
{
byte[] IColByte = new byte[4]{
(byte)ICol.Rows[0]["B"],
(byte)ICol.Rows[0]["G"],
(byte)ICol.Rows[0]["R"],
(byte)ICol.Rows[0]["A"]};
}
catch(System.Exception e)
{
throw new System.Exception("ERROR: Unable to create color byte array!" +
System.Environment.NewLine + e.Message);
}
ICol來自System.Data.DataTable類型,其定義如下:
public static System.Data.DataTable GenerateColor(byte B, byte G, byte R, byte A)
{
System.Data.DataTable dt = new System.Data.DataTable();
dt.Columns.Add(new System.Data.DataColumn("B", typeof(byte)));
dt.Columns.Add(new System.Data.DataColumn("G", typeof(byte)));
dt.Columns.Add(new System.Data.DataColumn("R", typeof(byte)));
dt.Columns.Add(new System.Data.DataColumn("A", typeof(byte)));
dt.Rows.Add(dt.NewRow());
dt.Rows[0]["B"] = B;
dt.Rows[0]["G"] = G;
dt.Rows[0]["R"] = R;
dt.Rows[0]["A"] = A;
return dt;
}
我不明白,這段代碼有什么問題? 即使警告等級很低...
它沒有任何問題,並且下面的程序運行沒有錯誤,因此ICol
的定義必須是罪魁禍首。
using System;
using System.Data;
public class Program
{
public static void Main()
{
var ICol = GenerateColor(2, 3, 4, 5);
byte[] IColByte = new byte[4]{
(byte)ICol.Rows[0]["B"],
(byte)ICol.Rows[0]["G"],
(byte)ICol.Rows[0]["R"],
(byte)ICol.Rows[0]["A"]};
Console.WriteLine(String.Join(", ", IColByte)); // Writes "2, 3, 4, 5"
}
public static System.Data.DataTable GenerateColor(byte B, byte G, byte R, byte A)
{
System.Data.DataTable dt = new System.Data.DataTable();
dt.Columns.Add(new System.Data.DataColumn("B", typeof(byte)));
dt.Columns.Add(new System.Data.DataColumn("G", typeof(byte)));
dt.Columns.Add(new System.Data.DataColumn("R", typeof(byte)));
dt.Columns.Add(new System.Data.DataColumn("A", typeof(byte)));
dt.Rows.Add(dt.NewRow());
dt.Rows[0]["B"] = B;
dt.Rows[0]["G"] = G;
dt.Rows[0]["R"] = R;
dt.Rows[0]["A"] = A;
return dt;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.