1.1C#语言基础-数据类型

C#中的数据类型根据其定义可以分为两种:值类型和引用类型。值类型直接存储数据,引用类型则是存储数据的引用,程序根据引用找到数据。

0x1值类型

用来存储数据值,主要包含整数、浮点数以及布尔等类型,存储在堆栈中,效率比较高,值存储的主要目的是为了提高性能。

  • 值类型变量都存储在堆栈中
  • 访问值类型变量是,一般都是直接访问其实列
  • 每个值变量都有自己的数据的副本,因此对一个值类型变量的操作不会影响其他变量
  • 复制值类型时,复制的是变量的值,而不是变量的地址
  • 值类型不能为NULL,必须具有一个确定的值

整数类型

值类型都是从System.ValueType类继承而来的类型

sbyte            8位有符号整数          -128~127
short            16位有符号整数        -32768~32767
int                 32位有符号整数
long              64位有符号整数
byte              8位无符号  整数        0~255
ushort           16位符号整数            0-65535
uint               32位无符号整数        
ulong            64位无符号整数    

当赋值的大小超过了类型规定的范围,可能出现运算溢出错误

浮点类型

//float:

float a=1.23f;
float b=2.34F;

//double:

double c=123d;
double d=11.22D;

小数默认是double类型,如果非要使用float类型,必须在末尾添加f或者F。

布尔类型

布尔类型的值:true/false,布尔类型的值只能是这俩,而且布尔类型的变量不能与其他类型进行转换

bool x=true;

0x2 引用类型

引用类型又称对象,存储实际数据的引用,C#中支持两种预定义引用类型: object 和string。

  • object :c#中所有的类型都是直接或者间接继承Object
  • string: 字符组成的序列

string 是引用类型,但是如果使用运算符(==和!=)表示比较对象的值。

引用类型的特征

  • 必须在托管堆中为应用类型变量分配内存
  • 必须使用new关键字来创建引用类型的变量
  • 在托管堆中分配的每个对象都有与之关联的附加成员,这些成员必须被初始化
  • 引用类型标本量是由垃圾回收机制来管理的
  • 多个引用类型变量可以引用同一对象,并且操作会相互影响
  • 在没有赋值之前是null

        class C
        {
            public int v = 0;
        }
        static void Main(string[] args)
        {
            C c1 = new C();
            C c2 = c1;
            c2.v = 30;
            Console.WriteLine("c1.v={0},c2.v={1}", c1.v, c2.v);
        }

posted @ 2018-12-10 13:56  随时静听  阅读(155)  评论(0编辑  收藏  举报