一 常量
常量是其值在使用过程中不会发生变化的变量。在声明和初始化常量时在常量前加const。
const int a = 100; // This value cannot be changed.
在程序中使用常量至少有 3个好处:
(1)由于使用易于读取的名称(名称的值易于理解)替代了较难读取的数字或字符串,常量使程序变得更易于阅读。
(2)常量更容易避免程序出现错误。如果在声明常量的位置以外的某个地方将另一个值赋给常量,编译器就会报告错误。
(3)常量使程序更易于修改。
二 变量
(1)变量的初始化
变量的初始化是C#调安全性的一个体现。 简单地说,编译器需要用某个初始值对变量初始化,未初始化而调用的变量会被当成错误。
与C++类似,常使用:
datatype identifier = datavalue;
来定义和初始化变量。
(2)对象的实例化
在 C#中实例化一个引用对象需要使用new关键字(该引用指向存储在堆上的一个对象):
Objsomething = new Something() // This creates a something on the heap
(3)类型推断
类型推断(type inference)使用var关键字。声明变量的语法有些变化。编译器可以根据变量的初始化值“推断”变量类型,这是一种非常有用的用法,和javascript是类似的。例如:
var someNumber = 1;
即使someNunber从来没有声明为int,编译器也可以确定其类型,只要someNunber在其作用域内,它就是一个int型变量。
(4)变量作用域
变量的作用域是可以访问该变量的代码区域。一般情况下,确定作用域遵循以下规则:
(a)只要类在某个作用域内,其字段(也称为成员变量)也在该作用域内。
(b) 局部变量存在于表示声明该变量的块语句或方法结束的右花括号之前的作用域内。
(c) 在for、while或类似语句中声明的局部变量存在于该循环体内。
(5)值类型和引用类型
C#把数据类型分为两种:值类型和引用类型,这两种类型存储在内存的不同地方:值类型存储在堆栈中,而引用类型存储在托管堆上。
上面的语句会在内存的两个地方存储值20, i 是值类型,j是引用类型。
如果变量是一个引用 ,就可以把其值设置为null,表示它不引用任何对象。如果将引用设置为null,显然就不可能对它调用任何非静态的成员函数或字段,这么做会在运行期间抛出一个异常。
(6)预定义值类型
C#内 置的CTS值类型表示基本类型,如 整型和浮点类型、字符类型和布尔类型。
1.整 型
C#支持8个预定义整数类型,如表:
2.浮点类型
共两种:
3.decimal类型
4.bool类型
5.字符类型
char类型的量是用单引号括起来的。如果把字符放在双引号中,编译器会把它看作字符串,从而产生错误。
除了把char表示为字符字面量之外,还可以用4位十六进制的Uicode值(如‘\u0041’)、带有数据类型转换的整数值(如(char)65)或十六进制数(‘\x0041‘))表示它们。它们还可以用转义序列表示,如表:
(7)预定义引用类型
C#支持两种预定义的引用类型,如表:
至此,关于C#常变量的知识就差不多介绍完了,下一篇博客将为大家介绍C#常用语句的种种。