bool类型的值只有两种,分别是true和false。它对应.NET中的System.Boolean。在这个值类型的内部,其实定义了两个int类型的值分别表示true和false,另外,还定义了它的字符串形式。

internal const int True = 1;
 
  
 
 internal const int False = 0;
 
  
 
 [__DynamicallyInvokable]
 
 public static readonly string TrueString = "True";
 
  
 
 [__DynamicallyInvokable]
 
 public static readonly string FalseString = "False";

声明和初始化

bool state = true;

将state变量声明为bool型,同时初始化一个true。

虽然0表示false,1表示true,但是我们不能直接将0或1赋值给一个bool类型的变量,它会报下面的错误,例如,我们定义如下:bool b = 1;

错误提示

错误 CS0029 无法将类型“int”隐式转换为“bool”

也并非不能实现int类型与bool类型的转换。参考如下的例子:

internal class Program
 
 {
 
     static void Main(string[] args)
 
     {
 
         bool state = true;
 
  
 
         Console.WriteLine($"state={state}");
 
         Console.WriteLine($"FalseString={bool.FalseString}");
 
         Console.WriteLine($"TrueString ={bool.TrueString}");
 
  
 
         int a = 0;
 
         bool b = Convert.ToBoolean(a);
 
         Console.WriteLine($"将int类型的{a}转化为bool类型的{b}");
 
  
 
         a = 1;
 
         b = Convert.ToBoolean(a);
 
         Console.WriteLine($"将int类型的{a}转化为bool类型的{b}");
 
  
 
         a = 2;
 
         b = Convert.ToBoolean(a);
 
         Console.WriteLine($"将int类型的{a}转化为bool类型的{b}");
 
  
 
         a = -1;
 
         b = Convert.ToBoolean(a);
 
         Console.WriteLine($"将int类型的{a}转化为bool类型的{b}");
 
  
 
         var v = Console.ReadKey();
 
     }
 
 }

输出如下:

state=True
FalseString=False
TrueString =True
将int类型的0转化为bool类型的False
将int类型的1转化为bool类型的True
将int类型的2转化为bool类型的True
将int类型的-1转化为bool类型的True

我们可以利用Convert.ToBoolean()函数实现int向bool的转换,并且得出结论,0表示false,非0表示true。bool类型的变量通常用在判断语句中,根据不同的状态执行不同的业务流程。

当前课程源码下载:(注明:本站所有源代码请按标题搜索)

文件名:004-《bool数据类型》源代码
链接:https://pan.baidu.com/s/1Bq2lX7cruUbklLwgjGggSw
提取码:byte

——重庆教主 2023年12月25日