当前位置: 首页 > news >正文

C# 对象和类型(结构)

类和结构的区别
字段、属性和方法
按值和引用传送参数
方法重载
构造函数和静态构造函数
只读字段
Object类,其他类型都从该类派生而来

结构

如何将类保持在堆中,通过这种方式可以在数据的生存期上获得很大的灵活性,但性能会有一定的损失。因托管堆的优化,这种行了损失比较小。有时需要一个小的数据结构。类提供的功能多于需要的功能,由于性能的原因,最好使用结构。

class Dimensions
{
    public double Length;

    public double Width;
}

结构的构造函数和属性:

struct Dimensions
{
    public double Length;

    public double Width;

    Dimensions(double length,double width)
    {
        Length=length;
        Width=width;
    }

    public int Diagonal
    {
        {
            get
            {
                return Math.Sqrt(Length*Length+Width*Width);
            }
        }
    }
}

结构与类区别

区别:
①结构是值类型,不是引用类型。它们存储在堆栈中或存储为内联(inline)(如果它们是另一个对象的一部分,就会保存在堆中),其生存期的限制与简单的数据类型一样。 ②结构不支持继承。 ③结构的构造函数的工作方式有一些区别。尤其是编译器总是提供一个无参数的默认构造函数,这是不允许替换的。

结构是值类型

结构遵循其他数据类型都遵循的规则:在使用前所有的元素都必须进行初始化。在结构上调用new运算符,或者给所有的字段分别赋值,结构就可以初始化。

结构和继承

结构不是为继承设计的。不能从一个结构中继承,唯一的例外是结构(C#中的其他类型一样)派生于类System.Object。结构也可访问System.Object的方法。在结构中,可以重写System.Object中的方法——例如重写ToString()方法。结构的基础链是:每个结构派生于System.ValueType,System.ValueType派生于System.Object。ValueType并没有给Object添加任何新成员,但提供一些更适合结构的执行代码。注意:不能为结构提供其他基类:每个结构都派生于ValueType。

结构的构造函数

给结构定义构造函数不允许定义无参数的构造函数。可以给结构提供Close()Dispose()方法。

本文由 mdnice 多平台发布

http://www.lryc.cn/news/518100.html

相关文章:

  • 利用AI优化SEO关键词提升网站排名的策略与技巧
  • “多维像素”多模态雷视融合技术构建自动驾驶超级感知能力|上海昱感微电子创始人蒋宏GADS演讲预告
  • 基于机器学习的故障诊断(入门向)
  • 【延伸学习】智能软开关优化配置对比算例【sop】
  • pytest 参数介绍
  • 源代码编译安装X11及相关库、vim,配置vim(1)
  • Node.js JXcore 打包教程
  • windows 下基于docker 部署 guacamole
  • 『SQLite』子查询可以这样用
  • 夯实前端基础之HTML篇
  • VVenC 编码器源码结构与接口函数介绍
  • 【C++习题】20. 两个数组的交集
  • 小R的蛋糕分享
  • 基于Arduino的FPV头部追踪相机系统
  • 使用 PyTorch 自定义数据集并划分训练、验证与测试集
  • VSCode 插件
  • Windows使用AutoHotKey解决鼠标键连击现象(解决鼠标连击、单击变双击的故障)
  • Linux 环境(Ubuntu)部署 Hadoop 环境
  • 如何在Windows 11 WSL2 Ubuntu 环境下安装和配置perf性能分析工具?
  • Docker运维高级容器技术知识点总结
  • react-quill 富文本组件编写和应用
  • LabVIEW轴承性能测试系统
  • 【《游戏编程模式》实战04】状态模式实现敌人AI
  • 借助免费GIS工具箱轻松实现las点云格式到3dtiles格式的转换
  • 科研绘图系列:R语言科研绘图之标记热图(heatmap)
  • 【轻松学C:编程小白的大冒险】--- C语言简介 02
  • 《HeadFirst设计模式》笔记(上)
  • 数据结构:ArrayList与顺序表
  • SpringBoot之核心配置
  • EasyExcel上传校验文件错误信息放到文件里以Base64 返回给前端