常量,顾名思义,不会改变的量。确切的说,在整个程序运行期间,这个量都不会发生改变。这些量在编译时是已知的,常量可以是任何基本数据类型,比如整数常量、浮点常量、字符常量、字符串常量、枚举常量、静态常量和动态常量,常量可以被当作常规的变量,只是它们的值在定义后不能被修改。若按类型区分,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日