zoukankan      html  css  js  c++  java
  • c#中的结构体类型

    struct 类型是一种值类型,通常用来封装小型相关变量组,例如,矩形的坐标或库存商品的特征。下面的示例显示了一个简单的结构声明。

    public struct PostalAddress
    {
    // Fields, properties, methods and events go here...
    }

    结构与类共享几乎所有相同的语法,但结构比类受到的限制更多:

    尽管结构的静态字段可以初始化,结构实例字段声明还是不能使用初始值设定项。

    结构不能声明默认构造函数(没有参数的构造函数)或析构函数。

    结构的副本由编译器自动创建和销毁,因此不需要使用默认构造函数和析构函数。实际上,编译器通过为所有字段赋予默认值(参见默认值表)来实现默认构造函数。结构不能从类或其他结构继承。

    结构是值类型 -- 如果从结构创建一个对象并将该对象赋给某个变量,变量则包含结构的全部值。复制包含结构的变量时,将复制所有数据,对新副本所做的任何修改都不会改变旧副 本的数据。由于结构不使用引用,因此结构没有标识 -- 具有相同数据的两个值类型实例是无法区分的。C# 中的所有值类型本质上都继承自 ValueType,后者继承自 Object。

    编译器可以在一个称为装箱的过程中将值类型转换为引用类型。

    结构具有以下特点:

    结构是值类型,而类是引用类型

    向方法传递结构时.结构是通过传值方式传递的,不是作为引用方式传递.

    与类不同,结构的实例化可以不使用new运算符.

    结构可以声明构造函数,但他们必须带参数

    一个结构不能从另一个结构或类继承,而且不能作为一个类的基。所有结构都直接继承自 System.ValueType,后者继承自 System.Object。

    结构可以实现接口。

    在结构中初始化实例字段是错误的。

  • 相关阅读:
    进程、线程和协程的区别(转)
    IO多路复用机制(转)
    防火墙及其功能(转)
    TCP连接的建立和终止。
    TCP和UDP细致刻画,区别。
    typename T和class T区别与联系
    TCP UDP的详解开始 ----UNIX网络编程
    关于UNIX网络编程的的OSI,1.7章的总结
    UNIX网络编程daytime服务端和客户端的实现过程
    linux shell脚本执行错误:bad substitution
  • 原文地址:https://www.cnblogs.com/zsb517/p/2531389.html
Copyright © 2011-2022 走看看