zoukankan      html  css  js  c++  java
  • C#基础 [03] 类型和成员

    一、什么是类型?

      1.什么是类型

        类型是一种数据结构的模板,它说明了由模板构造的对象的特征。类型定义了存储数据需要的内存空间的大小、对数据的访问方式、数据的存储位置(栈/堆)以及组成该类型的成员。类型包括C#语言提供的预定义类型和用户自定义的类型。

      2.类型的元素

        类型由名称、用于保存数据成员的数据结构及一些行为和约束条件。下图表示int类型的组成元素。

      

    二、预定义类型

      

     如上图所示,C#提供了16中预定义类型,包括13重简单类型和3种非简单类型。关于预定义类型的几点说明:

      1.所有预定义类型的名称全部由小写字母组成。

      2.所有预定义类型都直接映射到底层的.Net类型,C#的类型名称其实就是.Net类型的别名。比如 int类型是System.Int32的别名。在语法上来讲,我们在程序中可以直接使用.Net类型,但是实际当中更好的实践是使用C#类型名。

      3.object类型是系统中所有其他类型的基类。

    三、用户定义类型

      C#包括6种用户自定义类型:类(class)、结构(struct)、枚举(enum)、数组(array)、接口(interface)和委托(delegate)。

      1.类型声明信息

        用户定义类型通过类型声明创建,类型声明包括:

          1).类型的种类(关键字),比如class。
          2).定义类型的名称,比如MyClass。
          3).成员的声明(array和delegate除外,因为它们没有命名成员)。

      2.用户定义类型和预定义类型的比较

        使用预定义类型只需要实例化类型的对象即可,它是一个单步过程;而用户自定义类型需要先声明,后实例化,所以它是一个两步的过程。

        

    四、值类型和引用类型

      1.值类型

        值类型只需要一段单独的内存空间,用于存储实际的数据。

      2.引用类型

        引用类型需要两段内存:第一段用于存储实际的数据,它总是位于内存堆当中;第二段是一个引用,指向数据在堆中的地址。

      3.值类型和引用类型的比较

      

    五、类型的总结

      

    六、实例化类型

      从某个类型创建实际对象,称为实例化该类型。通过实例化类型而创建的对象称为类型的对象或类型的实例。

      实例化类型的示例(假设我已经定义一个类型“DaysTemp")。

    1            // 创建类型的实例(类类型的变量),值为null
    2             DaysTemp d1;
    3             // 为数据分配内存
    4             d1 = new DaysTemp();   
    5 
    6             // 创建实例并且分配内存
    7             // 使用了对象创建表达式(结合步骤)
    8             // 使用了简单写法(类型推断) 【推荐】
    9             var d2 = new DaysTemp();    

    七、成员

       1.什么是成员?

        包含在类型中的数据项个体就称为成员。成员具有成员名。一个类型中可以包含许多不同类型的成员,比如类类型中包含字段、属性、方法和事件等。

      2.成员的类别

        成员分为两种:

        1).数据成员:保存了与所在类型的对象或类型本身相关的数据。比如class的字段。
        2).函数成员:函数成员执行代码,它定义了类型的行为。比如lclass的方法。 

  • 相关阅读:
    shell脚本比较字符串相等
    从自身的经历讨论手工测试与自动化测试
    读《Linux Shell脚本攻略》(第2版) 一遍、二遍体会
    也许开发需要的只是一份简单明了的表格
    linux 命令:tr 的简单使用
    docker的数据持久化
    docker基础操作
    centos7 docker镜像源设置
    DockerUI(图形化管理)
    Docker 常用命令
  • 原文地址:https://www.cnblogs.com/sunyunh/p/2830327.html
Copyright © 2011-2022 走看看