浅析C#类和C#结构体的关系

开发 后端
本文分别介绍了c#类和c#结构体的概念,并且分析了二者的相同之处和不同之处,供大家参考。

C#类:类是C# 中功能最为强大的数据类型,类也定义了数据类型的数据和行为。然后,程序员可以创建作为此类的实例的对象。

C#结构体:结构体是轻量型的类,使用开销相对于类较小。

C#类和C#结构体两者的关系:

1.数据类型:类和结构体都是数据类型,类是引用类型,结构体是值类型。

2.继承性:类可以继承和被继承,而结构体隐式继承于object,不可以继承(除接口以外)和被继承

3.构造函数:类和结构体都有默认(无参)构造函数,只不过结构体不能显示声明默认(无参)构造函数,

4.字段初始化:类可以对字段声明时赋值初始化,而结构体不可以(除const和static之外),结构体的字段必须在构造函数中进行初始化。

5.实例化:结构体实例化时可以不使用new,,如果不使用new,那么在初始化所有字段之前,字段将保持未赋值状态且对象不可用。而类必须使用new进行实例化。

如何选择C#结构体还是C#类   

讨论了结构与类的相同之处和差别之后,下面讨论如何选择使用结构还是类:  

1.堆栈的空间有限,对于大量的逻辑的对象,创建类要比创建结构好一些  

2.结构表示如点、矩形和颜色这样的轻量对象,例如,如果声明一个含有   1000   个点对象的数组,则将为引用每个对象分配附加的内存。在此情况下,结构的成本较低。  

3.在表现抽象和多级别的对象层次时,类是***的选择 

4.大多数情况下该类型只是一些数据时,结构时***的选择 ,struct 类型是一种值类型,通常用来封装小型相关变量组,例如,矩形的坐标或库存商品的特征。 

【编辑推荐】

  1. C#语言读书心得备忘
  2. 详解C#制做Active控件的五个步骤
  3. 总结C#多线程的点点滴滴
  4. 学习C#多线程:lock的用法
  5. 各种C#数组的定义和初始化
责任编辑:book05 来源: hi.baidu
相关推荐

2009-08-13 14:06:37

C#结构体结构体和类的区别

2009-08-13 13:29:04

C#结构体使用

2009-08-13 11:18:50

C#结构体

2009-08-31 15:02:22

C#解析结构体指针

2009-08-13 14:56:46

C#的结构体使用

2009-08-13 13:03:52

C#结构体数组

2009-08-21 17:24:06

C# SingleIn

2009-08-06 14:43:10

C# Calculat

2009-08-21 17:24:06

C# SingleIn

2009-08-26 09:54:45

C#打印预览C#打印

2009-08-13 14:46:03

C#结构体定义

2009-08-14 11:05:28

C#语言的结构体

2009-08-27 13:37:11

C#类和结构

2009-08-25 17:59:49

C#入门

2009-09-23 09:36:34

C#数组

2009-08-27 13:50:08

C# StringBu

2009-08-19 10:41:14

C# switch和c

2009-08-13 15:03:58

C#结构体变量

2009-08-13 14:24:44

C#结构体构造函数

2010-01-18 11:05:24

C++
点赞
收藏

51CTO技术栈公众号