Unity开发之C#基础-结构体

前言

上一篇介绍了c#中的枚举,本篇我们介绍与枚举一样的复合值类型:结构体(struct)

目录

  • 前言
  • 为什么需要结构体类型?
  • 结构体的用处?
  • 结构体变量的创建
  • 结构体成员方法
  • 结构体与类的相同和不同
  • 结构体和类的适用空间
  • 总结

为什么需要结构体类型?

像int,double这些简单值类型都是在.NET类库中预定义的。很多情况下,人们需要将 不同的简单值类型组合起来使用,这时就可以使用结构类型

结构体的用处?

考虑“复数”这个概念,.NET类库没有类型定义,那么可以在double类型的基础上定义该类 型,它由两个double类型的字段组成,其中a表示复数的实部,b表示虚部。
Unity开发之C#基础-结构体_第1张图片

结构体变量的创建

Unity开发之C#基础-结构体_第2张图片

结构体成员方法

结构体还可以有成员方法,这说明结构实际上是部分面向对象,它也支持信息隐藏和封装, 能够进行对象创建和消息通信。
Unity开发之C#基础-结构体_第3张图片
看到这里可能有的学过编程的同学会觉得这不就是跟差不多吗,那我们就来大致的说一下什么时候用类什么时候用结构体。(没有学过类的同学也不要急,这里只是简单概括一下,后面的文章会讲到类的)

结构体与类的相同和不同

  1. 相同点:C#中结构类型和类类型在语法上非常相似,他们都是一种数据结构,都可以包括数 据成员和方法成员
  2. 不同点:结构是值类型,它在栈中分配空间;而类是引用类型,它在堆中分配空间,栈中保 存的只是引用

结构体和类的适用空间

  1. 当堆栈的空间很有限,且有大量的逻辑对象时,创建类要比创建结构好一些
  2. 对于点、矩形和颜色这样的轻量对象使用结构体
  3. 在表现抽象和多级别的对象层次时,类是最好的选择,因为结构不支持继承

总结

以上就是结构体的简答讲解,下期我们将会讲解到String类型

你可能感兴趣的:(C#基础篇,unity,c#,游戏程序)