错误 CS0266 无法将类型“long”隐式转换为“int”.存在显式转换(您是否缺少强制转换?
本文关键字:转换 是否 显式转换 存在 int long 类型 CS0266 错误 | 更新日期: 2023-09-27 17:59:07
这是我的C#代码:如何纠正此错误。
private MyFinger.MyKAD MyKad = new MyFinger.MyKAD();
void Button1_Click(object sender, EventArgs e)
{
int MyKADSts = 0;
MyKADSts = MyKad.Connect();
//ShowMsg("MyKad.Connect_MyKad():" + MyKADSts);
//Button3.Enabled = false;
//Button4.Enabled = false;
}
根据您收到的错误消息,您只需更改名为 MyKADSts
的变量的类型。
long MyKADSts = 0;
它的类型应该是64位整数(long
(而不是32位整数(int
(。显然,您不能将 64 位整数分配给 32 位整数。
似乎MyKad.Connect()
定义如下:
public long Connect()
{
// ...
}
不能将该方法返回的long
值隐式分配给整数局部变量MyKADSts
。这是因为long
(Int64
(可以容纳数字,而不是不能容纳在int
(Int32
(中的数字。
因此,您需要按如下方式更改代码:
long MyKADSts = MyKad.Connect();
如果您确实有正当理由将MyKADSts
int
,则需要按照错误状态显式转换该值:
long MyKADSts = (int)MyKad.Connect();
当我
尝试使用 LINQ 在 C# 中分配一个 ContactNo(在 SQL 中声明为 Bigint(9874561230时,我遇到了同样的错误。
我使用以下代码修复了它:
dynamic mobile = 9874561230;
newEmployee.ContactNo = (int)mobile;