我在这里使用此代码将结果显示为偶数或奇数而不是true和false:
Console.WriteLine(" is " + result == true ? "even" : "odd");
Run Code Online (Sandbox Code Playgroud)
因此我使用三元运算符,但它抛出错误,一些语法问题在这里,但我无法捕捉它.提前致谢
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplicationForTesting
{
delegate int Increment(int val);
delegate bool IsEven(int v);
class lambdaExpressions
{
static void Main(string[] args)
{
Increment Incr = count => count + 1;
IsEven isEven = n => n % 2 == 0;
Console.WriteLine("Use incr lambda expression:");
int x = -10;
while (x <= 0)
{
Console.Write(x + " ");
bool result = isEven(x);
Console.WriteLine(" is " + result == true ? "even" : "odd");
x = Incr(x);
}
Run Code Online (Sandbox Code Playgroud)
看看你得到的错误:
运算符'=='不能应用于'string'和'bool'类型的操作数
那是因为缺少括号.它连接字符串和bool值,这会产生一个字符串值,你无法将它与a进行比较bool.
要修复它:
Console.WriteLine(" is " + (result == true ? "even" : "odd"));
Run Code Online (Sandbox Code Playgroud)
进一步澄清.
bool result = true;
string strTemp = " is " + result;
Run Code Online (Sandbox Code Playgroud)
上面的语句是一个有效的语句,并产生一个字符串is True,所以你的语句目前看起来像:
Console.WriteLine(" is True" == true ? "even" : "odd");
Run Code Online (Sandbox Code Playgroud)
字符串和bool之间的上述比较无效,因此您会收到错误.