C#结构体struct和类class的区别与使用场景

本文探讨C#中结构体与类的区别,包括它们在内存分配、继承支持、初始化等方面的差异,并提供了实例说明何时选择使用结构体或类。结构体作为值类型在栈中存储,适用于轻量级对象,而类作为引用类型在堆中存储,适合需要引用地址的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

前言

一、结构体的使用

二、结构与类的区别

1.类和结构有以下几个基本的不同点:

2.选择使用情况

总结


前言

在我们开发程序中,功能实现可能没有问题,问题是如何将代码变得更优雅,优化程序运行。本文主要区别结构体与类的区别以及什么情况下使用结构体或类更为适合。

一、结构体的使用

在c#中,我们可以使用struct关键字来声明一个结构体,如:

struct book
{
     private int id;
     public String name;
     private String site;
     public void setValue(int id,String name,String site)
     {
         id = id;
         name = name;
         site = site;
     }
}

上面我们声明了一个名为books的结构体,在结构体中,可带有方法、字段、索引、属性、运算符方法和事件。

使用

   public static void Main(string[] args)
   {
      new book().setValue(1, "cs", "cs"); 
      book b;//声明
    b.name = "11111";
    Console.WriteLine(b.name);
   }

二、结构与类的区别

1.类和结构有以下几个基本的不同点:

  1. 类是引用类型,结构是值类型。

  2. 结构不支持继承。

  3. 结构不能声明默认的构造函数。

  4. 结构体中声明的字段无法赋予初值,类可以

  5. 类的对象是存储在堆空间中,结构存储在栈中。

2.选择使用情况

堆空间大,但访问速度较慢,栈空间小,访问速度相对更快。当我们描述一个轻量级对象的时候,结构可提高效率,成本更低。不过假如我们在传值的时候希望传递的是对象的引用地址而不是对象的拷贝,就应该使用类了。


总结

结构是值类型,它在栈中分配空间;而类是引用类型,它在堆中分配空间,栈中保存的只是引用。

所以比较小的数据时可以使用结构体来提升读取速度。而使用场景需要用到引用地址时就使用类。

以上就是如何声明结构体使用,以及什么情况下使用结构体和类的全部内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

aizhaiyu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值