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

目录

前言

一、结构体的使用

二、结构与类的区别

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.选择使用情况

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


总结

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

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

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

  • 11
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 结构体struct)和class)都是C#中的数据型。它们的区别在于,结构体是值型,是引用型。结构体通常用于简单的数据型,则通常用于更复杂的数据型和对象。另外,具有继承的概念,而结构体则没有。在使用时需要根据具体情况选择适合的数据型。 ### 回答2: C首先可以是音乐中的一个音调或者一个音符,是西洋音乐符号系统中的第三个音符,一般为中央C,频率为261.63Hz。在音乐中,C可以出现在调式中的任何位置,代表不同的音高和情感变化。 此外,C也可以代指计算机编程语言中的一种高级编程语言——C语言。C语言是一种高效、结构化程序设计语言,常用于操作系统、编译器、网络驱动程序等方面的软件开发。C语言具有简洁易懂、运行速度快、可移植等优点,在现代计算机软件开发中被广泛使用。 除此之外,C也可以是化学元素周期表中的一种化学元素,即碳(Carbon)。碳是一种非金属元素,以其广泛存在于生物体和地球内部、极为重要的化学活性和多种同素异形体等特性而被广泛研究和运用。碳可以制造高纯度的材料,如金刚石、石墨等;也可以构成复杂的有机化合物,如烷基、烯基、炔基等,用于生命科学、材料科学、化学工程等方面的研究和应用。 综上所述,C是一个多义词,具有音乐、计算机编程、化学等多种意义,在不同的领域中都有广泛的应用和研究。 ### 回答3: 很抱歉,您的问题中似乎缺失了一个完整的问题。请提供更详细的信息,以便我能够对您的问题提供更有针对性和准确的回答。谢谢!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

aizhaiyu

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

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

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

打赏作者

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

抵扣说明:

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

余额充值