zoukankan      html  css  js  c++  java
  • C#的两种数据类型延伸之三struct和class

    struct都能被class所代替, 那么为什么还要使用struct呢?存在即是合理的,struct在很多方面有着性能优势。让我们看看它们的主要区别在哪里?

    • 数据类型不一样,struct是值类型,class是引用类型,因此它们具有所有值类型和引用类型之间的差异。由于堆栈的执行效率要比堆的执行效率高,但是堆栈资源却很有限,不适合处理逻辑复杂的大对象,因此struct常用来处理作为基类型对待的小对象,而class来处理某个商业逻辑。
    • 从继承性来看,struct既不能继承也不能被继承,但是可以实现接口,而Class就可以完全扩展了。
    • 内部结构有区别,struct只能添加带参的构造函数,不能使用abstractprotected等修饰符,不能初始化实例字段,但是值得注意的是,struct可以重写System.Object3个虚方法,Equals()ToString()GetHashTable()Class没有这些限制。

    比较structclass的不同,可以得出以下几条structclass的使用原则:

    1 在表示诸如点、矩形等主要用来存储数据的轻量级对象时,首选struct

    2 在表示数据量大、逻辑复杂的大对象时,首选class

    3 在表现抽象和多级别的对象层次时,class是最佳选择

     

    http://blog.csdn.net/LOVESONGFOREVER/archive/2009/11/06/4775934.aspx

  • 相关阅读:
    图像处理笔记(五)
    图像处理笔记(四)
    图像处理(三)
    图像处理(二)
    图像处理(一)
    Halcon安装注意事项
    Tensorflow从开始到放弃(技术篇)
    Tensorflow从开始到放弃
    python 2.x中的中文
    WPF使用border画框
  • 原文地址:https://www.cnblogs.com/qingxia/p/1928926.html
Copyright © 2011-2022 走看看