none
关于“无法将类型“string”隐式转换为“bool””的提示 RRS feed

  • 问题

  • 下面是我在编写中遇到的一个问题,希望高手能够给予指导,谢谢

     

    using System;
    using System.Collections;
    class ArrList
    {
     static void Main()
     {
      ArrayList arr=new ArrayList();
      string str1;
      while (true)
      {
       Console.WriteLine("Please add a string to ArrayList:");
       str1=Console.ReadLine();
       if(str1="end")
        break;
       arr.Add(str1);
       Console.WriteLine();
       for(int i;i<arr.Count;i++)
        Console.Write("{0} ",arrIdea);
       Console.WriteLine("\n");
      }
     }
    }

     

    错误提示“if(str1="end")”中的“str1=“end””  无法将类型“string”隐式转换为“bool”

    2008年12月5日 2:37

答案

  •  skyers 写:

    错误提示“if(str1="end")”中的“str1=“end””  无法将类型“string”隐式转换为“bool”

     

    c判断是否相等  使用 "=="  而不是"="

    2008年12月5日 2:41

全部回复

  •  skyers 写:

    错误提示“if(str1="end")”中的“str1=“end””  无法将类型“string”隐式转换为“bool”

     

    c判断是否相等  使用 "=="  而不是"="

    2008年12月5日 2:41
  •  

    if后面跟表达式,其结果是bool类型。你的判断语句中"="是赋值语句,结果就为str1变量的值,结果是string类型,所以就出现上面的错误提示。改正方法,“=”变为“==”
    2008年12月5日 10:03
  •  

    编译器在出错信息之外,还有一个很重要的字符串,叫做错误ID,是在错误信息之前,比如下面的错误信息:

     

    error CS2001: Source file 'test.cs' could not be found
    fatal error CS2008: No inputs specified

     

    CS2001就是错误ID,你可以使用这个错误ID在MSDN里面检索错误原因,MSDN的C#编译器文档列出来很详细的错误原因,以及示例代码,当然还有解决方案。

    2008年12月5日 12:07
  • if(str1="end")” ==>if(str1=="end")

    2008年12月5日 12:16