C#中的结构与类的总结

总结起来,两者共有如下区别:

1、结构是值类型,类则是引用类型。因此前者是放在栈(Stack)里,后者则仅仅是将引用地址存放在栈里,而具体的值则存放在堆(heap)里。如下图所示:

2、据第1点可以得出结论,那就是类对象通常用来传递大数据,而结构对象则用来传递小数据。

3、类可以被继承,而结构则不支持。

4、结构对象不能像类对象一样赋值为null。

5、结构不能像类一样定义析构器。

6、结构不能像类一样定义为抽象的。

7、在结构中不能重写方法,除非是object类型的如下方法:

Equals()

GetHashCode()

GetType()

ToString()

若要让结构具有多态特性,可以让其实现接口。

8、在类中定义的事件是线程安全的,而结构则不是。

时间: 2024-10-29 10:03:55

C#中的结构与类的总结的相关文章

C#.NET中关于结构与类之间的区别

目录  类与结构的实例比较 类与结构的差别 如何选择结构还是类 一.类与结构的示例比较: 结构示例: publicstructPerson {  stringName;  intheight;  intweight;  publicbooloverWeight()  {   //implementsomething  } } 类示例: publicclassTestTime {  inthours;  intminutes;  intseconds;  publicvoidpasstime()

结构和类

在C++中,结构和类很相似,结构的成员默认为公共类型,而类的成员默认为私有类型.而在C#中,它们是完全不同的类型: 1:类型: 结构是值类型,在堆栈上分配地址,所以结构之间的赋值可以创建新的结构:而类是引用类型,在堆上分配地址,所以类之间的赋值只是复制引用.堆栈的执行效率要比堆的执行效率高,可是堆栈的资源有限,不适合处理大的逻辑复杂的对象,所以结构处理作为基类型对待的小对象,而类处理某个商业逻辑. 2:继承性: 结构不能被继承,除了它们都是由System.Valuetype派生而来.可是结构能够

c#中结构与类的区别

区别 目录  类与结构的实例比较    类与结构的差别    如何选择结构还是类  一.类与结构的示例比较: 结构示例: public struct Person {    string Name;    int  height;    int  weight public bool overWeight() {     //implement something } }   类示例:    public class TestTime    {  int hours;  int minutes;

c++-请问在C++中,结构体数组类型能作为类的数据成员吗?

问题描述 请问在C++中,结构体数组类型能作为类的数据成员吗? 我想让自己构造一个结构体数组来存储记录,结构体数组类型能作为类的数据成员吗? 解决方案 just do it 解决方案二: 可以.实现的时候注意不要出错就可以. 解决方案三: 可以,c++中结构体和类除了默认访问控制符外没什么区别,一个类的对象可以作为另外一个类的成员数据,结构体当然可以 解决方案四: 可以啊,结构体不过是扩展了的int float等等 解决方案五: 当然可以不过我觉得你还不如重新写个class作为专门存储数据 解决

Python中使用装饰器和元编程实现结构体类实例_python

Ruby中有一个很方便的Struct类,用来实现结构体.这样就不用费力的去定义一个完整的类来仅仅用作访问属性. 复制代码 代码如下: class Dog < Struct.new(:name, :age) end fred = Dog.new("fred", 5) printf "name:%s age:%d", fred.name, fred.age ##name:fred age:5 Python3.4中也可以这么干,但写法很累赘.其中包含self.nam

Filter组件开发中的SDK基类分析

DirectShow SDK提供了一套开发Filter的基类源代码.基于这些基类开发Filter将大大简化开发过程. 1.CBaseObject 大部分SDK类都从CBaseObject类(参见combase.h)中继承而来的. [cpp] view plaincopy class CBaseObject   {      private:          // Disable the copy constructor and assignment by default so you will

C#中的结构

结构是使用 struct关键字定义的,与类相似,都表示可以包含数据成员和函数成员的数据结构. 一般情况下,我们很少使用结构,而且很多人也并不建议使用结构,但作为.NET Framework 一般型別系统中的一个基本架构,还是有必要了解一下的. 结构的特征: 结构是一种值类型,并且不需要堆分配.结构的实例化可以不使用new运算符. 在结构声明中,除非字段被声明为 const 或 static,否则无法初始化.结构类型永远不是抽象的,并且始终是隐式密封的,因此在结构声明中不允许使用abstract和

C#学习之结构与类的区别

区别 最近有看到网上面试题提到结构鱼类的区别,遂查看了msdn以及一些网上的资料总结了一下,一做学习之用 C#学习之结构与类的区别数据结构和类实际上都是创建对象的模版,每个对象都包含数据,并提供了处理和访问数据的方法.在语法上,非常相似,主要是使用关键字的区别.对于类和结构,都是使用关键字new来声明实例:这个关键字对象创建对象,并对其进行初始化. 1.值类型和引用类型结构是指类型,指类型在堆栈(栈)上分配地址,C#中的所有基类型都是结构类型(例如:int对应System.Int32结构):类是

关于C#中的结构

其实在介绍Struct之前,我们应对C#关于类(Class)的原理进行初步的研究.但是,从另一个方面,我们也可以先对这个与类有着血缘关系的结构进行探讨以获得对类的进一步的认识. 首先,C#的结构是一个关系重大的语言功能.和类一样,结构也可以包含其他类型.由于结构在内部是值类型的,所以结构有时也被称为类的轻型版本.同时,结构不承担引用对象所带来的开销,除非在对其装箱时例外. 结构也有其重要的限制,所以导致他只能用于非常特殊的场合. 以下就讨论他们的局限性和他的优点.结构的定义和类的定义基本上是一致