无法将类型 'ulong' 隐式转换为 'bool'
Cannot implicitly convert type 'ulong' to 'bool'
我收到此错误:
Cannot implicitly convert type 'ulong' to 'bool'
在这里 (u*u) for (ulong u = 2; u * u; u++)
下面的代码块。
static bool IsPrime(ulong Num)
{
if (Num < 2) return false;
else if (Num < 4) return true;
else if (Num % 2 == 0) return false;
for (ulong u = 2; u * u; u++)
if (Num % u == 0) return false;
return true;
}
检查 MSDN 关于关键字 :
Every for statement defines initializer, condition, and iterator
sections. These sections usually determine how many times the loop
iterates.
所以第二部分是条件,必须隐式转换为bool。由于 long 类型不能隐式转换,你会得到一个编译时错误。
我想这就是你想做的事情:
static bool IsPrime(ulong Num)
{
if (Num < 2)
return false;
else if (Num < 4)
return true;
else if (Num % 2 == 0)
return false;
for (ulong u = 2; u * u < Num; u++)
if (Num % u == 0)
return false;
return true;
}
我收到此错误:
Cannot implicitly convert type 'ulong' to 'bool'
在这里 (u*u) for (ulong u = 2; u * u; u++)
下面的代码块。
static bool IsPrime(ulong Num)
{
if (Num < 2) return false;
else if (Num < 4) return true;
else if (Num % 2 == 0) return false;
for (ulong u = 2; u * u; u++)
if (Num % u == 0) return false;
return true;
}
检查 MSDN 关于关键字 :
Every for statement defines initializer, condition, and iterator sections. These sections usually determine how many times the loop iterates.
所以第二部分是条件,必须隐式转换为bool。由于 long 类型不能隐式转换,你会得到一个编译时错误。 我想这就是你想做的事情:
static bool IsPrime(ulong Num)
{
if (Num < 2)
return false;
else if (Num < 4)
return true;
else if (Num % 2 == 0)
return false;
for (ulong u = 2; u * u < Num; u++)
if (Num % u == 0)
return false;
return true;
}