上一篇(地址:https://www.vinanysoft.com/c-sharp-basics/data-types/fundamental-numeric-types/)只介绍了基本数值类型,本篇将介绍其他的一些类型: bool、char 和 string。

布尔类型(bool)

bool 关键字是 System.Boolean 的别名。 它用于声明变量来存储布尔值:true 和 false。

可将布尔值赋给 bool 变量。 也可以将计算结果为 bool 类型的表达式赋给 bool 变量。

public class BoolTest
{
static void Main()
{
bool b = true; // WriteLine automatically converts the value of b to text.
Console.WriteLine(b); int days = DateTime.Now.DayOfYear; // Assign the result of a boolean expression to b.
b = (days % 2 == 0); // Branch depending on whether b is true or false.
if (b)
{
Console.WriteLine("days is an even number");
}
else
{
Console.WriteLine("days is an odd number");
}
}
}
/* Output:
True
days is an <even/odd> number
*/

虽然理论上一个二进制位足以容纳一个布尔类型的值,但 bool 实际大小是一个字节。

字符类型(char)

char 类型关键字是 System.Char 结构类型的别名,它表示 Unicode UTF-16 字符:

类型 范围 大小 .NET 类型
char U+0000 到 U+FFFF 16 位 System.Char

输入 char 字面量需要将字符放到一对单引号中,比如 'A'。所有键盘字符都可这样输入,包括字母、数字以及特殊符号。

有的字符不能直接插入源代码,需进行特殊处理。首先输入反斜杠(\)前缀,再跟随一个特殊字符代码。反斜杠和特殊字符代码统称为转义序列(escape sequence)。

例如,\n 代表换行符,而 \t 代表制表符。由于反斜杠标志转义序列开始,所以要用 \\ 表示反斜杠字符。

Console.Write("\'");    //输出单引号(')
Console.Write("\\"); //输出反斜杠(\)

char 类型字面量可以输入字符、十六进制转义序列或 Unicode 表示形式。 也可以将整型字面量强制转换为相应的 char 值。 在下面的示例中,使用相同的字符 X 对 char 数组的四个元素进行初始化:

var chars = new char[4];

chars[0] = 'X';        // Character literal
chars[1] = '\x0058'; // Hexadecimal
chars[2] = (char)88; // Cast from integral type
chars[3] = '\u0058'; // Unicode Console.Write(string.Join(" ", chars));
// Output: X X X X

下表列出了字符串转义序列:

转义序列 字符名称 Unicode 编码
\' 单引号 0x0027
\" 双引号 0x0022
\\ 反斜杠 0x005C
\0 null 0x0000
\a 警报 0x0007
\b 退格 0x0008
\f 换页 0x000C
\n 换行 0x000A
\r 回车 0x000D
\t 水平制表符 0x0009
\v 垂直制表符 0x000B
\u Unicode 转义序列 (UTF-16) \uHHHH(范围:0000 - FFFF;示例:\u00E7 =“ç”)
\U Unicode 转义序列 (UTF-32) \U00HHHHHH(范围:000000 - 10FFFF;示例:\U0001F47D =“

C# 中的 bool、char 和 string 类型的更多相关文章

  1. Java之byte、char和String类型相互转换

    package basictype; /** * byte.char和String类型相互转换 */ public class CHJavaType { public static void main ...

  2. C++ 中 int,char*,string,CString之间相互转换-整理

    <多字符集下> #include <string> //使用C++标准库的string类时, 定义时 std::string str; using namespace std; ...

  3. java.lang.UnsupportedClassVersionError: JVMCFRE003解决方法--jdk 1.6 中switch的参数无法使用String类型

    在jdk 1.6版本中,switch的参数无法使用String类型,只支持int,char,enum类型. 1.6版本之前不支持switch语句存在字符串的判断,升级到1.7或1.8及以上版本即可.

  4. C++ 中int,char,string,CString类型转换

      1. c++中string到int的转换 1) 在C标准库里面,使用atoi: #include <cstdlib> #include <string> std::stri ...

  5. SpringMVC中使用@Value给非String类型注入值

    String类型的@Value注入方式 String类型的直接可以使用 @Value("陈婉清") private String name; 非String类型的@Value注入方 ...

  6. VC中BSTR、Char和CString类型的转换

    1.char*转换成CString 若将char*转换成CString,除了直接赋值外,还可使用CString::format进行.例如: char chArray[] = "This is ...

  7. Redis中一个String类型引发的惨案

    ​      曾经看到这么一个案例,有一个团队需要开发一个图片存储系统,要求这个系统能快速记录图片ID和图片存储对象ID,同时还需要能够根据图片的ID快速找到图片存储对象ID.我们假设用10位数来表示 ...

  8. java内存分配和String类型的深度解析

    [尊重原创文章出自:http://my.oschina.net/xiaohui249/blog/170013] 摘要 从整体上介绍java内存的概念.构成以及分配机制,在此基础上深度解析java中的S ...

  9. 【转】java内存分配和String类型的深度解析

    一.引题 在java语言的所有数据类型中,String类型是比较特殊的一种类型,同时也是面试的时候经常被问到的一个知识点,本文结合java内存分配深度分析关于String的许多令人迷惑的问题.下面是本 ...

随机推荐

  1. C#音频截取与原文匹配2:使用ffmpeg处理音频文件

    ffmpeg获取音频时间 ffmpeg转换音频格式(单声道,16000hz,16bit  wav) ffmpeg截取音频 不知道是不是错觉,感觉ffmpeg比NAudio要快啊~ 那么这就是第二个版本 ...

  2. 【集训Day3 离散化】矩形覆盖

    矩形覆盖(planting) [问题描述] 给定在一个平面坐标系上的N(1 <= N <= 100)个矩形区域,这N个矩形可能有相互覆盖的部分.求平面上被所有矩形覆盖的总面积,重复部分只算 ...

  3. vue当文字很多的时候实现...代替

    vue当文字很多的时候实现...代替只需加三行代码 overflow: hiddenwhite-space: nowraptext-overflow: ellipsis

  4. 迈进java初中级程序员分水岭是否合格?十个题告诉你!

    前言 不论你是职场新人还是步入职场N年的职场新人大哥大~当然这个N<3~,我能担保你答不对这十个题~不要问我为什么这么自信~,这些个题还是"有水平"的javase的基础题,传 ...

  5. 【开发工具 - Git】之本地项目托管到远程仓库

    这里所说的“本地项目托管到远程仓库”,说的是:例如,我们在本地有一个写了很长时间的项目,现在想要托管到GitHub或码云上进行版本控制. 这个过程大致需要以下几个步骤: (1)在本地初始化Git项目本 ...

  6. redis与memcached区别

    不同点: (1) redis中并不是所有数据在有效期内只能常驻内存的(如果需要,可定期同步持久化到磁盘),这是和memcached相比一个最大的区别(memcached中的数据在有效期内是以键值对的形 ...

  7. 监控软件之open-falcon安装、配置篇

    2019-07-10 一.open-falcon简介 open-falcon是由小米运维团队,从互联网公司角度为出发点,开发出来的一套面向互联网行业的企业级的开源监控系统,截至2019年7月,open ...

  8. mysql 忘记登录密码(修改root密码)

    1.以管理员身份打开cmd,键入net stop mysql,停止mysql 2.切换到mysql的安装目录下(例:S:\mysql\mysql-8.0.18-winx64\mysql-8.0.18- ...

  9. AIOps产品与架构浅析【华为云技术分享】

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/devcloud/article/detai ...

  10. 从零开始入门 K8s | 手把手带你理解 etcd

    作者 | 曾凡松(逐灵) 阿里云容器平台高级技术专家 本文整理自<CNCF x Alibaba 云原生技术公开课>第 16 讲. 导读:etcd 是用于共享配置和服务发现的分布式.一致性的 ...