《C#从入门到项目实践》基础知识 第3章
第3章 C#程序开发基础——常量与变量
声明
本博客中的源代码由于电脑系统问题,均未编译调试过,都是按照《C#从入门到项目实践》一书人工敲上去的(为了练手速),待重装完系统安装了软件之后,立马马上调试修改。
3.1 常量
常量是固定值,程序执行期间不会改变。常量可以是任何基本数据类型,例如整数常量、浮点常量、字符常量或者字符串常量,还有枚举常量。常量也可以被当作常规的变量,只是它们的值在定义后不能被修改。
3.1.1 整数常量
整数常量可以是十进制、八进制或十六进制的常量。前缀指定基数,如“0x”或“0X”表示十六进制,“0”表示八进制,没有前缀则表示十进制。
整数常量也可以有后缀,可以是U和L的组合,其中,U表示unsigned,其含义是指一个无符号的数据;L表示long,其含义是指一个长整型数据。后缀可以是大写或者小写,多个后缀以任意顺序进行组合。
例如,以下为整数常量的一些实例:
123 //合法,表示十进制整数
456u //合法,表示无符号整数
0xFeeL //合法,表示一个十六进制数
078 //非法,八进制数据是从0到7,而8不是一个八进制数字
032UU //非法,不能重复后缀
以下是各种类型的整数常量的实例:
65 //十进制
0327 //八进制
0x4b //十六进制
20 //int
20u //无符号 int
20l //long
20ul //无符号 long
3.1.2 字符常量
在C#中,字符常量就是指单引号里的单个字符,如’a’。在计算机中的数字和字符是两个完全不同的概念,数字用来计算,字符用来显示。例如,数字3是一个可以计算的数字,字符’3’仅仅是用来显示的符号。
还有一种特殊情况,如“\n”“\a”,像这样的字符常量就是通常所说的转义字符。这种字符是以反斜杠(\)开头,后面跟一个字符或者一个八进制或十六进制数,表示的不是单引号里面的值,而是“转义”,即转换为具体的含义。
如表所示是C#中常见的转义字符。
3.1.3 字符串常量
字符串常量可以通过两种方式来进行显示。第一种是通过双引号括起来,如"" “a” “abc” "abc\n"等。另一种是在双引号的前面加上字符@,如@“abc”、@"abc\n"等。所以字符串常量可以定义为在一对双引号里的字符序列或转义字符序列。
例如,带双引号:
Console.WriteLine("Hello C#!")
以@开头,后面跟一个带双引号的字符串:
Console.WriteLine(@"d:\root\subdir");
1.@控制符
@符号在C#中有以下两个作用。
(1)在字符串的前面加@表示取消字符串中的转义。
例如:
Console.WriteLine(@"C:\Docs\Source\a.txt");
等价于
Console.WriteLine("C:\\Docs\\Source\\a.txt");
如果要在@字符串中包含双引号,双倍添加即可:
Console.WriteLine(@"""Ahoy!"" cried the captain");
(2)在字符串的前面加@表示字符串可以分为多行书写。
例如:输出三个字符串类型的变量
using System;
namespace Project
{
class Program
{
static void Main(string[] args)
{
string str1 = "Good morning!";
Console.WriteLine(str1);
string str2 = @"C:\Windows";
Console.WriteLine(str2);
string str3 = @"<script type=""text/javascript"">
<!--
-->
</script>";
Console.WriteLine(str3);
}
}
}
本例演示了字符串和@控制符的使用。
在代码中,第一个字符串变量str1输出的是一个字符串“Good morning!”。
第二个字符串变量str2中使用了@,因此可以将转义字符“\”当作普通字符对待,最后输出了字符串“C:\Windows”。
第三个字符串变量str3也使用了@,所以最后输出的字符串可以任意换行,换行符及缩进空格都计算在字符串长度之内。
这里需要注意,如果想要在@字符串中包含双引号,必须双倍添加。
2.+运算符两个字符串可以用“+”运算符连接起来,例如“Hello”+“World”的结果是“HelloWorld”。“+”运算符也可以连接其他变量类型。
3.1.4 浮点常量
一个浮点常量是由整数部分、小数点、小数部分和指数部分组成。用户可以使用小数形式或者指数形式来表示浮点常量。
以下是一些浮点常量的实例:
3.14159 //合法
314159E-5L //合法
541E //非法:不完全指数
210f //非法:没有小数或指数
.e55 //非法:缺少整数或小数