美文网首页
第1章 变量和类型

第1章 变量和类型

作者: 睁眼说瞎话要勇敢 | 来源:发表于2020-02-13 17:28 被阅读0次

    1.类型

    1.1什么是类型

    类型可以看成用来创建数据结构的模板,但模板本身不是数据结构.所以在定义类型以后,要使用必须先实例化.

    1.2类型构成

    类型有三部分组成:名称,数据结构,方法

    1.3类型分类

    c#中类型分两大类三小类.

    第一大类:预定义类型,分两小类,

    ----------简单类型:数值类型,字符类型(char),布尔类型(bool)(注:数值不能自动转为bool)

    ----------非简单类型:字符数组(string),基类(object),dynamic

    第二大类:自定义类型

    c#提供了6中自定义类型,他们分别是:

    ----类类型(class);    ----结构类型(struct);    ----数组类型(array);

    ----枚举类型(enum);    ----委托类型(delegate);    ----接口类型(interface);

    1.4类型的创建

    类型创建格式:

    <要创建的类型>    <名称>

    {类型成员声明;}

    2数据存储

    2.1栈

    栈是一种内存数组,存储以下几种类型的数据:

    ----某些类型变量的值;

    ----程序当前执行环境;

    ---传递给方法的参数;

    2.2堆

    堆是用来存储某些类型的数据对象,有垃圾回收机制.

    2.3数据存储

    类型还可以分为值类型和引用类型,这两种类型的对象在内存中的存储方式不同.

    -------------当类型不是其他类型的成员时:

    ----值类型:只需要一段单独的内存,用来存放数据------------存储在栈中

    ----引用类型:需要两段内存

    ----------第一段存储实际的数据--------------------------------------放在堆内

    ----------第二段是一个地址,指向数据存放在堆内的位置------放在栈内

    ------------当类型是某个类型的成员时:

    ---此时,作为其他类型成员的类型,无论是值类型还是引用类型,数据和地址放在<堆>内.

    3变量

    3.1变量分类

    常见4中变量:

    -----本地变量------------------在方法的作用域内保存临时数据,不是类型的成员

    -----字段-------------------------保存类型或类型实例相关的数据,是类型成员

    -----参数-----------------------向方法传递数据的临时变量,不是类型的成员

    -----数组元素--------------------可以为本地变量也可以为类型成员

    3.2 dynamic关键字

    c#是静态语言,但很多脚本语言如Python都是动态语言,他们只有在程序运行时才确定变量的类型,c#在引用这些

    语言所编写的程序集时就出现问题.dynamic就是为了解决这个问题的.

    3.3可空类型

    此类型和值的有效性相关,在处理数据库相关操作时,我们不知道该值是否有效,但普通的值类型都必须在栈内开辟空间

    并存储值,可空类型解决此类问题.

    相关文章

      网友评论

          本文标题:第1章 变量和类型

          本文链接:https://www.haomeiwen.com/subject/pzclfhtx.html