变量的类型(续)
我们在一起学C#(六)中学习了整型、浮点型、decimal型、布尔型和字符型的变量,也了解了每个类型用来保存什么样的数据,换个角度说,我们知道了什么样的数据需要定义哪种类型的变量来保存它。比如,可以通过“char ch = 'A';”这条语句把字符'A'保存在变量ch里。
其实,还有一个关于字符的坑,早晚会让我们掉进去,让我们来看看。假如,我们想在字符变量里存放一个单引号,可不可以这样写:
char ch = ''';
用两个单引号,把一个单引号引在中间,我们的本意是把一个单引号赋值到变量ch中,但是,这样写是有问题的。
我们已经知道,任何C#代码,如果想要运行,第一步就需要进行编译,在编译的时候,编译器读取到三个连续的单引号时,认为单引号不匹配,就会报错,我们的程序就没有办法继续运行了。
为了避免这个误会,编译器规定了一个转义字符“\”(反斜线),,当这个字符出现的时候,与它紧连的字符跟这个转义字符一起被看作是一个字符,所以单引号在代码中应该写成返斜线加上一个单引号,“\'”,所以上面的代码需要改为:
char ch = '\'';
这样,编译器把“\'”看作是“'”,就不会报错了。同理,双引号、反斜线等都需要使用转义字符,如“\"”、“\\”。
还有一些特别的字符,叫做控制字符,如“\n”、“\t”等,我们写一个程序来看看它们的用法。
using System;
namespace csdn.blog.areosea
{
class Char
{
static void Main()
{
// \n表示换行,使用\n把一行文字在显示到屏幕的时候分为两行
Console.WriteLine("这是第一行文字。\n这是第二行文字。");
Console.WriteLine(); // 输出一个空行
// \t表示制表符,使用\t对齐第二列的文字
Console.WriteLine("第一行\t这是第一行。");
Console.WriteLine("第2行\t这是第二行。");
Console.ReadLine();
}
}
}
执行结果:
这是第一行文字。
这是第二行文字。
第一行 这是第一行。
第2行 这是第二行。
第一条输出语句,通过“\n”进行了换行,所以显示在屏幕上的文字被分成了两行。第二条输出语句输出了一个空行,便于看清演示结果。第三条和第四条输出语句,通过使用“\t”,尽管第一列的长度不一致,但使第二列做到了上下对齐。
我们学习的这些变量,是C#预定义的值类型的变量,另外还有两种变量,是C#预定义的引用类型的变量,它们分别是object和string类型。
1.objec类型
是一个最基本的类型,它可以执行许多一般用途的基本方法,如Equals()等等。在以后还会详细学习。
2. string类型
字符串类型,最大的用途是用来存放、处理字符串。字符串多数是用来和客户进行沟通的话语,每句话都是程序员精心设计,与相关的信息组合后显示到屏幕上的。
比如,在写程序的时候,我们并不知道用户登录系统时会使用什么样的名称,如果需要在登录后给用户一个欢迎信息,就需要把欢迎词和用户登录时使用的名称合并起来。我们还是通过例子来了解一下吧。
using System;
namespace csdn.blog.areosea
{
class Hello
{
static void Main()
{
string welcome = ",欢迎你登录系统!"; // 把欢迎信息放到welcome变量中
Console.Write("请输入登录名,然后按回车键:"); // 提示用户输入登录名
string name = Console.ReadLine(); // 读取用户输入的内容到变量name中
Console.WriteLine(); // 显示一个空行
Console.WriteLine(name + welcome); // 显示欢迎信息
Console.ReadLine(); // 等待一个回车后结束
}
}
}
执行结果:
请输入登录名,然后按回车键:aerosea
aerosea,欢迎你登录系统!
通过连接两个字符串name和welcome,我们顺利完成了欢迎信息的显示工作。
然后,我们可能又遇到了一个坑,如果用户只输入了一个回车,没有输入用户名,屏幕上会显示什么?
请输入登录名,然后按回车键:
,欢迎你登录系统!
对,就是这个样子,不太好看吧。显得我们的程序有些傻傻的,人家什么都没说,它还傻傻地欢迎。
我们随后就学习怎样对付这个坑。