- 语法:datatype identifier;
如: int i ;
- 如果一条语句中声明和初始化了多个变量,那么它们应具有相同的数据类型;
如: int a=10, b=13; // a 和 b 具有int类型的变量
- 变量在使用前必须初始化;
- 变量是类或结构中的字段,如果没有显式初始化,创建时,其默认值是0;
- 方法的局部变量,必须在代码中显式初始化,之后才能使用;
- 在创建一个对象时,没有对该对象创建一个引用,对该对象调用方法和属性时,将会发生错误;
-
类型推导
- 类型推导使用var关键字, 编译器会根据变量的初始化值“推断”变量的类型;
- 需要遵循的规则:
- 变量必须初始化,否则编译器就没有推断变量类型的依据;
- 初始化器不能为空;
- 初始化器必须放在表达式中;
- 不能把初始化器设置为一个对象,除非在初始化器中创建了一个新对象;
-
变量的作用域
- 类的成员变量的作用域,取决于类的对象的作用域;
- 局部变量的作用域,在右花括号之前的作用域内;
- for, while语句中声明的局部变量存在于该循环体内;
-
const 常量
- 在变量前加上const关键字就能将该变量指定为常量;
- 常量有如下特点:
- 常量必须声明时初始化;
- 常量的值必须能在编译时用于计算;不能用一个变量的值来初始始化常量;
- 常量总是静态的,不需要加上static关键字;
- 易于读取的名字代替较难读取的数字或字符串,见名思义;
- 使程序易于修改;
- 更容易避免程序出错;
-
值类型:
- byte: 8bit无符号整数
- ushort: 16bit无符号整数
- uint: 32bit无符号整数
- ulong: 64bit无符号整数
- sbyte: 8bit有符号整数
- short: 16bit有符号整数
- int: 64bit有符号整数
- long : 64bit有符号整数
- float: 32bit单精度浮点型 7位
- double: 64bit双精度浮点型 15/16位
- decimal: 128bit 高精度十进制数表示法 28位 在数字后面加上m/M;
- bool : true/false;
- char : 16bit(Unicode)字符
-
引用类型:
-
存储在托管堆上
- object类型:所有类型的最终父类型,所有的内置类型和用户定义的类型都是由它派生而来;
- 用object的引用绑定任何子类型的对象;
- object类型执行许多一般用途的基本方法,如Equals(), GetHashCode(), GeyType(), ToString();
- 可以在字符串字面量的前面加上字符 @;在 这个字符后的所有字符都看作是其原来的含义 —— 它们不会解释为转义字符 ;