错误1无法将类型'char'隐式转换为'bool'

时间:2011-03-23 01:46:08

标签: c# .net

我见过其他问题,但答案看起来很复杂,无法理解,所以继续我的代码:

注意:我是c shar语言的新手

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Input_Program
{
    class Program
    {
       private static void Main()
       {
           Console.WriteLine("Welcome to my bool program!");
           Console.WriteLine("Input a NON capital y or n when told to.");


            char Y;
            char N;

            if(Y = 'y')
            {}
        }
    }
}

由于 感谢

3 个答案:

答案 0 :(得分:7)

您缺少一个等号:if(Y == 'y')

您现在拥有它的方式,它将值'y'分配给Y,这也是赋值表达式的结果。它是char,而编译器需要bool结果。

<强>更新

当然,正如thephpdeveloper所说,编译器还会坚持在读取之前为Y分配一个值。所以:

char Y = 'y';
char N = 'n';

if(Y == 'y')
{}

答案 1 :(得分:2)

=用于分配。您正在寻找的是等于运算符==

答案 2 :(得分:1)

在您提供的代码中

(Y = 'y')

评估为'y',因为新作业将始终作为成功分配的结果返回。这样,'y'语句中无法将if转换为布尔值进行比较。

=是一个赋值运算符。要比较两个值,您应该使用==代替。

除此之外,你需要使用(char)Console.Read()来让程序从用户输入中读取一个字符:

 char Y = (char) Console.Read();
 if(Y == 'y'){
     Console.WriteLine('You pressed YES.');
 }else{
     Console.WriteLine('You probably pressed NO.');
 }