代码出自 https://blog.csdn.net/qq_42672770/article/details/112761229

文章目录

  • background
  • 1、Code
  • 2、Results
  • 3、Conclusion

background

都知道sturct使用栈内存访问更快,class使用堆内存访问相对慢,为什么还会有class内使用struct的写法呢?


1、Code

using System.Diagnostics;namespace BlogProject
{struct MyStructure{public string Name;public string Surname;}class MyClass{public string? Name;public string? Surname;}class MyMix{public MyStructure structure;}class Program{static void Main(string[] args){MyStructure[] objStruct = new MyStructure[1000];MyClass[] objClass = new MyClass[1000];MyMix[] myMixes = new MyMix[1000];Stopwatch sw = new Stopwatch();sw.Start();for (int i = 0; i < 1000; i++){objStruct[i] = new MyStructure();objStruct[i].Name = "Sourav";objStruct[i].Surname = "Kayal";}sw.Stop();Console.WriteLine("For Structure:- " + sw.ElapsedTicks);sw.Restart();for (int i = 0; i < 1000; i++){objClass[i] = new MyClass();objClass[i].Name = "Sourav";objClass[i].Surname = "Kayal";}sw.Stop();Console.WriteLine("For Class:- " + sw.ElapsedTicks);sw.Restart();for (int i = 0; i < 1000; i++){myMixes[i] = new MyMix();myMixes[i].structure.Name = "Sourav";myMixes[i].structure.Surname = "Kayal";}sw.Stop();Console.WriteLine("For Mixed:- " + sw.ElapsedTicks);Console.ReadLine();}}
}

2、Results





可以看到使用了堆内存的基本都不是很稳定


3、Conclusion

别想这么多了复杂业务直接上类就完事了。

【C#】结构体struct和类class的比较相关推荐

  1. 结构体 struct 和类 class 的比较

    C的结构体和C++结构体的区别 1.组成不同 C的结构体内不允许有函数存在,C++允许有内部成员函数,且允许该函数是虚函数.所以C的结构体是没有构造函数.析构函数.和this指针的. 2.权限不同 C ...

  2. C语言 结构体 struct Cat cat1;

    引入 使用传统技术解决 需要定义多个变量或数组 结构体与结构体变量的关系示意图 类似Java类中的对象(结构体)与属性(结构体变量) 一切物体都可以看作对象(结构体) 补充:C语言数据类型 简单使用案 ...

  3. go struct 静态函数_Go语言学习笔记(四)结构体struct 接口Interface 反射reflect...

    加 Golang学习 QQ群共同学习进步成家立业工作 ^-^ 群号:96933959 结构体struct struct 用来自定义复杂数据结构,可以包含多个字段(属性),可以嵌套: go中的struc ...

  4. 指针、结构体、枚举类和文件

    指针 //指针变量中只能存放地址(指针) int *pointer = 100; //是不合法的,int *p=后面必须是地址变量 int a=10; int *p = &a; *p = 1; ...

  5. [ C语言 ]指针---结构体(struct)---分支语句(1)---初识C语言末尾

    文章目录 前言 一,指针 二,结构体(struct) 三,分支语句(选择结构) 总结​​​​ 前言 本篇文章主要记录指针末尾,结构体,和分支语句(选择结构) --------------------- ...

  6. linux 结构体 struct addrinfo 简介

    目录 定义 相关方法 1. getaddrinfo(const char, const char, const struct addrinfo, struct addrinfo*) 2. freead ...

  7. 结构体struct timeval 和 struct timespec的定义

    结构体struct timeval 和 struct timespec的定义均在头文件<sys/time.h>中,具体定义如下: struct timeval {long tv_sec; ...

  8. Golang结构体struct的使用(结构体嵌套, 匿名结构体等)

    转自: https://studygolang.com/articles/11313 golang中是没有class的,但是有一个结构体struct,有点类似,他没有像java,c++中继承的概念,但 ...

  9. linux sock结构体,struct socket结构体详解

    在内核中为什么要有struct socket结构体呢? struct socket结构体的作用是什么? 下面这个图,我觉得可以回答以上两个问题.  由这个图可知,内核中的进程可以通过使用struct ...

最新文章

  1. java urlconn 下载慢_使用HttpURLConnection下载文件时出现 java.io.FileNotFoundException彻底解决办法...
  2. font-family字体总结
  3. 初涉c#设计模式-proxy pattern-从中国足球黑哨开始
  4. php integer
  5. 2.1 进行误差分析-深度学习第三课《结构化机器学习项目》-Stanford吴恩达教授
  6. linux网络管理基本命令
  7. JavaWeb结合七牛云存储搭建个人相册服务
  8. gitlab 端口_安装Gitlab-注意端口
  9. C#类、接口、虚方法和抽象方法
  10. html5 input min,HTML Input Time min用法及代码示例
  11. 地铁线路图的设计与实现
  12. WindowsAPI----AttachThreadInput使用
  13. 通过 JavaScript调用Asp.net(C#)后台方法
  14. android自定义布局中的平滑移动
  15. 未知高度的非表格垂直对齐
  16. 《给QTreeView表项添加CheckBox和图标》:系列教程之七
  17. php中ne,eq相等 ne、neq不相等, gt大于, lt小于
  18. 《游测攻坚日记》-- 黑盒测试1
  19. 解决Ubuntu强制获取root权限后只剩下客人会话而无法正常登录
  20. 【Android】线上自助点餐系统

热门文章

  1. 那些初学者可以看的Python书籍
  2. 计算机网络硬核指南|网络设计核心思想
  3. Win7 64位 下SlikSVN 的安装配置
  4. 一个计算机爱好者的不完整回忆(三十三)做过的软件
  5. radio按扭设置只读_jQuery设置单选按钮radio选中/不可用的实例代码
  6. 安全芯片OPTIGA Trust M2 ID2连接阿里云
  7. java的 0x7f_Java基础知识
  8. 帝国cms 未审核 showinfo.php,帝国CMS自动审核发布信息脚本
  9. hash,bloomfilter,分布式一致性hash
  10. 四川省打造粮食统计调查创新技术的窗口