C#学习的心得笔记

刘铁猛7——类型,变量与对象详解(下)

2019-10-23  本文已影响0人  北欧的蓝天

1)蓝色表示是常用的数据类型,C#将其吸收为关键字了。

2)蓝色表示这些数据类型都是基本数据类型,也叫内建数据类型。别的类型都是拿这些类型构成的。

本节讲C#语言的数据类型及其之间的关系。

如何知道一个成员是不是一个类

1)调用MSDN文档,快捷键

2)用Type语句获知全名后,贴到MSDN文档index栏查询

Type myType = typeof(FormatException);

Console.WriteLine(myType.FullName);

3)用IsClass查询

Type myType = typeof(FormatException);

Console.WriteLine(myType.IsClass);

4) 最直接的方法,选中要查询的成员,右键点击“go to definition”,来到微软创建该成员时定义它的地方。定义时就是class。基类是System.Exception.

C#的五种主要数据类型,归为两类(reference和value)

1)Class,用于声明和定义类。

2)Struct 结构体类型: 

如:int,Long等,太常用了,C#吸收它们为关键字了。实际上写成int32,int64也行。

3)Enum 枚举类型:给定集合,只能从集合中选值,不能随便取值。

E.g. form类,窗口只有三种状态(Mazimized,Minimized和Normal),最大化,最小化,调整size。

委托和接口都是高级类型,本节课不讲。

C#的数据类型系统

这些数据类型,构成了C#的数据类型系统,树状,有层级结构。

object:位于树状结构的根部,为基类型,分出两大数据类型分组:reference 和 value

1)Reference 引用类型,分为三种:

A)类:

a)Object和String,是真正的数据类型中的类,因为太常用,被吸收为关键字了。

b)Class,Interface,delegate,都只是关键字。不是一个类,只是用来定义类的关键字。

B)接口

C)委托

2)Value 值类型,分为两种

A)结构体: 

a)以下是真正的数据类型

b)Struct,只是关键字。不是一个结构体数值类型,只是用来定义结构体类型的关键字。

B)枚举

true 和 false是bool数值类型的值,只能有这两种。

void 和 null 是函数的返回值,void不需要返回值,null一个引用变量不引用任何实例,引用值为空。

var 和 dynamic 用来声明变量。

变量

1)静态字段(静态变量)

2)字段(或,成员变量)(实例变量)

3)数组元素

4)值参数

5)引用参数

6)输出形参

7)局部变量(狭义的变量指局部变量,平时也简称为变量),因为其他种类的变量都有自己的名称了。局部变量就是声明在方法体内的变量。

值类型在内存中的存贮

sbyte,带正负号的,最高位为0代表正数,为1代表负数

计算机存储负数的原则:按位取反再加一。如:

正100,01100100,

负100,10011011+1   ---> 10011100

存放双字节数据,右边补齐0,从高地址开始存。

s = 200;

 string str = Convert.ToString(s,2);

 Console.WriteLine(str);

值类型没有实例,实例与变量合而为一。

不用写成 int x  = new int();

引用类型在内存中的存贮

一旦声明一个引用类型,就直接在内存中刷出4个字节,不用计算所需空间,放在栈中。

声明一个实例类型后,才需要在内存中计算所需空间。实例存放在堆内存中。

变量的默认值

局部变量默认值全刷成0.

本地变量没有默认值,必须要赋值,否则无法编译成功。

常量 Const

常量的值不可以被改变。

const int x = 100;

x  = 200;  // 报错,因为x是常量,值不可以变

装箱和拆箱

int x = 100;

object obj;   //引用类型obj

obj = x;



上一篇下一篇

猜你喜欢

热点阅读