变量

来源:互联网 发布:百年经典分析软件 编辑:程序博客网 时间:2024/05/16 16:49
  • 变量的定义

  1. 语法:datatype identifier;  
              如:  int  i ;
  1. 如果一条语句中声明和初始化了多个变量,那么它们应具有相同的数据类型;
             如: int a=10, b=13;   // a 和 b 具有int类型的变量
  • 变量的初始化

  1. 变量在使用前必须初始化;
  2. 变量是类或结构中的字段,如果没有显式初始化,创建时,其默认值是0;
  3. 方法的局部变量,必须在代码中显式初始化,之后才能使用;
  4. 在创建一个对象时,没有对该对象创建一个引用,对该对象调用方法和属性时,将会发生错误;
  • 类型推导

  • 类型推导使用var关键字, 编译器会根据变量的初始化值“推断”变量的类型;
  • 需要遵循的规则:
  1. 变量必须初始化,否则编译器就没有推断变量类型的依据;
  2. 初始化器不能为空;
  3. 初始化器必须放在表达式中;
  4. 不能把初始化器设置为一个对象,除非在初始化器中创建了一个新对象;
  • 变量的作用域

  • 类的成员变量的作用域,取决于类的对象的作用域;
  • 局部变量的作用域,在右花括号之前的作用域内;
  • for, while语句中声明的局部变量存在于该循环体内;
  • const 常量

  • 在变量前加上const关键字就能将该变量指定为常量;
  • 常量有如下特点:
  1. 常量必须声明时初始化;
  2. 常量的值必须能在编译时用于计算;不能用一个变量的值来初始始化常量;
  3. 常量总是静态的,不需要加上static关键字;
  • 使用常量的好处:
  1. 易于读取的名字代替较难读取的数字或字符串,见名思义;
  2. 使程序易于修改;
  3. 更容易避免程序出错;
  • 预定义数据类型

  1. 值类型:

    • 存储在堆栈中;
    • 在赋值是实行的是值拷贝;
    • 整形:
    1. byte:      8bit无符号整数
    2. ushort: 16bit无符号整数
    3. uint:       32bit无符号整数
    4. ulong:   64bit无符号整数
    5. sbyte:     8bit有符号整数
    6. short:    16bit有符号整数
    7. int:         64bit有符号整数
    8. long :    64bit有符号整数
    • 浮点类型:
    1. float:      32bit单精度浮点型  7位
    2. double: 64bit双精度浮点型  15/16位
    • decimal类型
    1. decimal: 128bit 高精度十进制数表示法   28位  在数字后面加上m/M;
    • bool类型
    1. bool :   true/false;
    • 字符类型
    1. char :  16bit(Unicode)字符
  2. 引用类型:

    • 存储在托管堆上
    • object类型:所有类型的最终父类型,所有的内置类型和用户定义的类型都是由它派生而来;
    1. 用object的引用绑定任何子类型的对象;
    2. object类型执行许多一般用途的基本方法,如Equals(), GetHashCode(), GeyType(), ToString();
    • string类型
    1. 可以在字符串字面量的前面加上字符 @;在 这个字符后的所有字符都看作是其原来的含义 —— 它们不会解释为转义字符 ;

0 0