zoukankan      html  css  js  c++  java
  • Convert.ToBoolean(“0”) 的错误用法

         今天在调试接口时,遇到了以下问题:

         运行这句 bool IsRoot = Convert.ToBoolean(dt.Rows[i]["IsRoot"].ToString()) ;结果抛出如下错误:该字符串未被识别为有效的布尔值。开始怀疑表里的数据问题,就换成了Convert.ToBoolean(“0”)试了试,还是报错,然后查了下MSDN于是就明白了。

        方法的备注:若要成功执行转换,value 参数必须等于 Boolean.TrueString(值为 True 的常量)或 Boolean.FalseString(值为 False 的常量),否则必须为 null。 在对 value 与Boolean.TrueStringBoolean.FalseString 进行比较时,该方法忽略大小写以及前导和尾随空白。

     

       1: using System;
       2:  
       3: public class BooleanConversion
       4: {
       5:    public static void Main()
       6:    {
       7:       ConvertToBoolean(null);
       8:       ConvertToBoolean(String.Empty);
       9:       ConvertToBoolean("true");
      10:       ConvertToBoolean("TrueString");
      11:       ConvertToBoolean("False");
      12:       ConvertToBoolean("    false    ");
      13:       ConvertToBoolean("-1");
      14:       ConvertToBoolean("0");
      15:    }
      16:  
      17:    private static void ConvertToBoolean(string value)
      18:    {
      19:       try
      20:       {
      21:          Console.WriteLine("Converted '{0}' to {1}.", value,  
      22:                            Convert.ToBoolean(value));
      23:       }
      24:       catch (FormatException)
      25:       {
      26:          Console.WriteLine("Unable to convert '{0}' to a Boolean.", value);
      27:       }
      28:    }
      29: }
      30: // The example displays the following output to the console:
      31: //       Converted '' to False.
      32: //       Unable to convert '' to a Boolean.
      33: //       Converted 'true' to True.
      34: //       Unable to convert 'TrueString' to a Boolean.
      35: //       Converted 'False' to False.
      36: //       Converted '    false    ' to False.
      37: //       Unable to convert '-1' to a Boolean.
      38: //       Unable to convert '0' to a Boolean.

         该方法对参数只接受等于”True” 和“False”的值,只能换种方法写了。

    Convert.ToBoolean  (Int32)

         说明:如果 value 为非零值,则为 true;否则为 false。

       1:  
       2: int[] numbers = { Int32.MinValue, -201649, -68, 0, 612, 4038907, 
       3:                   Int32.MaxValue };
       4: bool result;
       5:  
       6: foreach (int number in numbers)
       7: {
       8:    result = Convert.ToBoolean(number);                                 
       9:    Console.WriteLine("{0,-15:N0}  -->  {1}", number, result);
      10: }
      11: // The example displays the following output:
      12: //       -2,147,483,648   -->  True
      13: //       -201,649         -->  True
      14: //       -68              -->  True
      15: //       0                -->  False
      16: //       612              -->  True
      17: //       4,038,907        -->  True
      18: //       2,147,483,647    -->  True
      19:  
    
    
    
    
    
    
    有些方法自己还是不清楚用法啊,继续努力学习


      欢迎扫描此二维码关注web馆公众号
      作者:web馆
      出处:http://www.cnblogs.com/xiaoyao2011/
      欢迎任何形式的转载,但请务必注明出处。


  • 相关阅读:
    C语言判断字符串是否是 hex string的代码
    红米手机使用应用沙盒一键修改sdk信息
    Python illustrating Downhill simplex method for minimizing the user-supplied scalar function的代码
    荣耀5.0以上手机(亲测有效)激活xposed框架的经验
    java压缩指定目录下的所有文件和文件夹的代码
    荣耀7.0系统手机最简单激活Xposed框架的步骤
    小米平板7.0系统如何不root激活Xposed框架的方法
    安装与配置Flutter开发环境
    Spring Boot 2
    Flutter介绍
  • 原文地址:https://www.cnblogs.com/xiaoyao2011/p/2154267.html
Copyright © 2011-2022 走看看