【C#】结构体struct和类class的比较
代码出自 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的比较相关推荐
- 结构体 struct 和类 class 的比较
C的结构体和C++结构体的区别 1.组成不同 C的结构体内不允许有函数存在,C++允许有内部成员函数,且允许该函数是虚函数.所以C的结构体是没有构造函数.析构函数.和this指针的. 2.权限不同 C ...
- C语言 结构体 struct Cat cat1;
引入 使用传统技术解决 需要定义多个变量或数组 结构体与结构体变量的关系示意图 类似Java类中的对象(结构体)与属性(结构体变量) 一切物体都可以看作对象(结构体) 补充:C语言数据类型 简单使用案 ...
- go struct 静态函数_Go语言学习笔记(四)结构体struct 接口Interface 反射reflect...
加 Golang学习 QQ群共同学习进步成家立业工作 ^-^ 群号:96933959 结构体struct struct 用来自定义复杂数据结构,可以包含多个字段(属性),可以嵌套: go中的struc ...
- 指针、结构体、枚举类和文件
指针 //指针变量中只能存放地址(指针) int *pointer = 100; //是不合法的,int *p=后面必须是地址变量 int a=10; int *p = &a; *p = 1; ...
- [ C语言 ]指针---结构体(struct)---分支语句(1)---初识C语言末尾
文章目录 前言 一,指针 二,结构体(struct) 三,分支语句(选择结构) 总结 前言 本篇文章主要记录指针末尾,结构体,和分支语句(选择结构) --------------------- ...
- linux 结构体 struct addrinfo 简介
目录 定义 相关方法 1. getaddrinfo(const char, const char, const struct addrinfo, struct addrinfo*) 2. freead ...
- 结构体struct timeval 和 struct timespec的定义
结构体struct timeval 和 struct timespec的定义均在头文件<sys/time.h>中,具体定义如下: struct timeval {long tv_sec; ...
- Golang结构体struct的使用(结构体嵌套, 匿名结构体等)
转自: https://studygolang.com/articles/11313 golang中是没有class的,但是有一个结构体struct,有点类似,他没有像java,c++中继承的概念,但 ...
- linux sock结构体,struct socket结构体详解
在内核中为什么要有struct socket结构体呢? struct socket结构体的作用是什么? 下面这个图,我觉得可以回答以上两个问题. 由这个图可知,内核中的进程可以通过使用struct ...
最新文章
- java urlconn 下载慢_使用HttpURLConnection下载文件时出现 
java.io.FileNotFoundException彻底解决办法...
- font-family字体总结
- 初涉c#设计模式-proxy pattern-从中国足球黑哨开始
- php integer
- 2.1 进行误差分析-深度学习第三课《结构化机器学习项目》-Stanford吴恩达教授
- linux网络管理基本命令
- JavaWeb结合七牛云存储搭建个人相册服务
- gitlab 端口_安装Gitlab-注意端口
- C#类、接口、虚方法和抽象方法
- html5 input min,HTML Input Time min用法及代码示例
- 地铁线路图的设计与实现
- WindowsAPI----AttachThreadInput使用
- 通过 JavaScript调用Asp.net(C#)后台方法
- android自定义布局中的平滑移动
- 未知高度的非表格垂直对齐
- 《给QTreeView表项添加CheckBox和图标》:系列教程之七
- php中ne,eq相等 ne、neq不相等, gt大于, lt小于
- 《游测攻坚日记》-- 黑盒测试1
- 解决Ubuntu强制获取root权限后只剩下客人会话而无法正常登录
- 【Android】线上自助点餐系统