常量,顾名思义,不会改变的量。确切的说,在整个程序运行期间,这个量都不会发生改变。这些量在编译时是已知的,常量可以是任何基本数据类型,比如整数常量、浮点常量、字符常量、字符串常量、枚举常量、静态常量和动态常量,常量可以被当作常规的变量,只是它们的值在定义后不能被修改。若按类型区分,C#中的常量可以分为静态常量和动态常量两种。
比如
int a = 1 + 2;
我们定义一个整型变量a,同时给它赋初值,这个初值就是表达式1+2的结果。在这个1+2表达式中,1和2就是整数常量。再比如
string b = "hello" + "world";
我们定义一个字符串变量b,同时给它赋初值为表达式 "hello" + "world" 的结果,这里的字符串"hello"和字符串"world" 都表示字符串常量。
下面我们来学一学C#中的常见的常量有哪些。
一、整数常量
C#中的整数类型有byte、sbyte、short、ushort、int、uint、long、ulong,从进制上区分,整数有八进制、十进制和十六进制的表示形式。
前缀:八进制采用0作为前缀表示,十进制没有前缀,十六进制采用0x或0X作为前缀表示。
后缀:unsigned表示无符号的意思,采用首字母U或u表示unsigned;long表示长整型,首字母L或l表示long。
所以,我们可以通过前缀+后缀的方式标识一些整数常量,如下所示
var a = 123;/* 合法:表示整数 十进制形式*/
Console.WriteLine(a);
var b = 123u;/* 合法:表示正整数 十进制形式*/
Console.WriteLine(b);
var c = 0xABCL;/* 合法:表示64位的long型整数,16进制形式*/
Console.WriteLine(c);
var d = 0XABCDLU;/* 合法:表示64位的long型整数,16进制形式*/
Console.WriteLine(d);
var e = 0256;/* 合法:int型整数,8进制形式*/
Console.WriteLine(e);
var f = 065535ul;/* 合法:ulong型整数*/
Console.WriteLine(f);
var g = 065535;/* 合法:int型整数*/
Console.WriteLine(g);
输出结果
123
123
2748
43981
256
65535
65535
二、浮点常量
浮点常量是由整数部分、小数点、小数部分和指数部分组成。您可以使用小数形式或者指数形式来表示浮点常量。例如
var h = 3.1415926;
Console.WriteLine(h);
var i = 31415926E-7;//E表示指数形式
Console.WriteLine(i);
var j = 100E0;
Console.WriteLine(j);
var k = 100E-1;
Console.WriteLine(k);
var l = 100E+1;
Console.WriteLine(l);
var m = 100f;
Console.WriteLine(m);
var n = .5;
Console.WriteLine(n);
输出结果
3.1415926
3.1415926
100
10
1000
100
0.5
下面是一些错误的表达方式,当然这些会被编译器语法检查出来,您不必担心写错。
100E /*不合格:没有写明指数部分*/
.E10 /*不合格:没有整数或小数*/
总结:使用小数形式表示时,必须包含小数点、指数或同时包含两者。使用指数形式表示时,必须包含整数部分、小数部分或同时包含两者。有符号的指数是用 e 或 E 表示的。
三、字符常量
字符常量是指包括在单引号里面的量。只可存储一个简单的字符类型,可分为普通字符、转义字符和通用字符。我们曾经在《char数据类型》一文中学到C#的字符类型是char,表示Unicode UTF-16 字符。char占两个字节长度,即16位,而2的16次方等于65536,所以一共有65536个字符。
3.1普通字符
‘a’ 表示小写字母a
‘A’表示大写字母A
‘?’表示一个问号
3.2转义字符
转义字符以\开头。如:\n表示换行,\t表示水平制表符,\v表示垂直制表符,\\表示一个单斜杠\,\r表示回车,所以它们也可以用单引号括起来表示一个字符常量。
3.3通用字符
通用字符是以\u开头,表示Unicode UTF-16 字符的字符,例如\u0061,然后用单引号括起来。
下面我们来演示一下字符常量。
var o = 'a';
Console.WriteLine(o);
var p = 'A';
Console.WriteLine(p);
var q = '?';
Console.WriteLine(q);
var r = '\\';
Console.WriteLine(r);
var s = '\u0061';
Console.WriteLine(s);
输出结果
a
A
?
\
a
四、字符串常量
字符串常量的表示有两种,分别是双引号“”或者@“”。而字符串的内容和字符的内容一样,可以是普通字符、转义字符或通用字符。
var t = "";//长度为0的字符串常量
Console.WriteLine(t.Length);
var u = "hello,world.";//普通字符串
Console.WriteLine(u);
var v = "C:\\";
Console.WriteLine(v);
var w = @"C:\\";
Console.WriteLine(w);
var x = @"第一行,
第二行,
第三行,";//多行字符
Console.WriteLine(x);
输出结果
请注意,多行字符会包括第二行和第三行前面的空格一并输出到屏幕。
当前课程源码下载:(注明:本站所有源代码请按标题搜索)
文件名:045-什么是常量.zip
链接:https://pan.baidu.com/s/1Bq2lX7cruUbklLwgjGggSw
提取码:byte
——重庆教主 2024年1月24日