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

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.kler.cn/a/471639.html

相关文章:

  • [python3]Excel解析库-xlwt
  • (一)使用 WebGL 绘制一个简单的点和原理解析
  • 二维数组:求最大元素及其所在的行坐标及列坐标(PTA)C语言
  • 【计算机网络】常见交换机名词术语
  • 大数据高级ACP学习笔记(2)
  • 搭建企业AI助理的创新应用与案例分析
  • GOAT‘S AI早鸟报Part9
  • 2019年IMO第2题
  • 深入解析Java 8中的Lambda表达式与函数式接口
  • MATLAB语言的数据结构
  • 【Javascript Day2】
  • 32单片机从入门到精通之数据处理——传感器接口(十二)
  • kafka搭建
  • 代码随想录day38 动态规划6
  • 06-RabbitMQ基础
  • 【源码+文档+调试讲解】项目申报小程序
  • 一次压测的记录笔记
  • 基于 GEE 的 MODIS 数据集 NDVI 时间序列动画
  • FPGA与IC:选哪个更好?
  • 基于微信小程序疫苗预约系统ssm+论文源码调试讲解
  • 计算机网络之---网络拓扑
  • 教育咨询系统架构与功能分析
  • Android车载音频系统目录
  • pycharm-pyspark 环境安装
  • Koi技术教程-Tauri基础教程-第二节 Tauri的核心概念下
  • 02- 三自由度串联机械臂运动学分析