zoukankan      html  css  js  c++  java
  • 类和结构

    结构struct:是值类型,可以声明字段但是声明字段的时候是不能赋值的,但是类就可以在声明的时候赋值,其实原因是因为类会到构造函数中进行赋值。

    类和结构都会自动的生成一个无参的构造函数,类中如果定义了有参的构造函数就不会再生成无参构造函数了,而结构会。而且不能为结构添加一个无参的构造函数,并且在结构体的构造函数中必须为所有字段赋值。创建结构体可以不使用new关键字,结构体不能从另外一个结构或者类继承但是可以实现结构,其实所有的结构都是从valuetype类继承,valuetype又从object中继承

    类和结构的使用时机:

    结构存储在栈中,类存储在堆中,结构访问速度比类快

    结构适合轻量级对象比如点 矩形 颜色

    类适合重量级对象

    //class ClassAndStruct
    //{
    //}
    //class Point
    //{
    // public int x, y;
    // public Point(int x, int y)
    // {
    // this.x = x;
    // this.y = y;
    // }
    //}
    //class Test

    //{
    // static void Main(string[] args)
    // {
    // Point[] points = new Point[1000000];
    // for (int i = 0; i < 1000000; i++)
    // { 
    // points[i] = new Point(i, i * i);
    // }
    // }
    //}

    在性能分析工具中,1百万的数组大小,类类型的point数组需要1百万零1个分立空间i(1个给数组,另外1百万个给数字里的元素),而结构类型只需要1个分立空间,类类型需要700多毫秒而结构类型只需要20多毫秒

  • 相关阅读:
    pip 安装依赖 requirements.txt
    TCP三次握手四次挥手详细理解附面试题
    装饰器修复技术
    BBS(第一篇)
    Auth模块
    Django--中间件
    cookie和session
    创建多对多表关系的三种方式
    批量插入数据,自定义分页器
    Django--几个重要方法优化(面试重点)
  • 原文地址:https://www.cnblogs.com/javazyh/p/9599133.html
Copyright © 2011-2022 走看看