请教,在哪种场景下有必要使用struct,而该场景下struct对比class的明显优势是什么?

ttsffgg 2019-02-02 07:19:54
如题.
如果即使在struct占有优势的场景中,其带来的优势也不大,那么在团队中规定禁止使用struct是否合理?
请教各位在实际开发中的经验,,谢谢.
...全文
279 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ttsffgg 2019-02-03
  • 打赏
  • 举报
回复
引用 1 楼 caozhy 的回复:
使用struct的主要场景: 大量的小对象,因为struct是值类型,内联在内存上,所以速度快、效率高、节约内存。 和C++等编程语言交换数据,互操作。 C#的类和别的语言的类不兼容,但是结构体兼容的。 使用unsafe方式,使用指针,C#是可以使用指针的,但是指针只能使用结构体。而使用指针的最终目的还是提高效率和互操作。 不使用struct的场景: 结构体不能继承,不能封闭构造函数等等 在团队中规定禁止使用struct是否合理 不合理,基本类库的很多类型都是结构体,比如Color、DateTime,难道都不用了? --------------------- 友情提示,及时结帖,慎用无满意答案结帖。结帖返还一半可用分,无满意结帖或者不结贴没有分返还。
感谢解惑.
threenewbee 2019-02-02
  • 打赏
  • 举报
回复
使用struct的主要场景:
大量的小对象,因为struct是值类型,内联在内存上,所以速度快、效率高、节约内存。
和C++等编程语言交换数据,互操作。 C#的类和别的语言的类不兼容,但是结构体兼容的。
使用unsafe方式,使用指针,C#是可以使用指针的,但是指针只能使用结构体。而使用指针的最终目的还是提高效率和互操作。
不使用struct的场景:
结构体不能继承,不能封闭构造函数等等

在团队中规定禁止使用struct是否合理
不合理,基本类库的很多类型都是结构体,比如Color、DateTime,难道都不用了?

---------------------
友情提示,及时结帖,慎用无满意答案结帖。结帖返还一半可用分,无满意结帖或者不结贴没有分返还。

内容概要:本文围绕不确定环境下的多式联运路径优化问题展开研究,提出并实现了基于AFO算法、遗传算法(GA)和粒子群优化算法(PSO)的三种智能优化方法,并借助Matlab平台完成算法编程与仿真。研究构建了考虑时间、成本、转运风险等多重不确定因素的路径优化模型,系统比较了AFO、GA、PSO三种算法在收敛速度、全局寻优能力和稳定性方面的表现,同时引入Matlab自带的全局优化搜索器作为基准对照,深入分析各算法在复杂物流网络中的适用边界与性能差异。研究表明,AFO算法在解决此类组合优化问题时展现出更快的收敛效率和更强的局部规避能力。; 适合人群:具备一定Matlab编程基础与运筹优化知识,从事物流工程、交通运输规划、智能算法开发等相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于多式联运、综合货运网络中的路径决策支持系统构建;②为不确定性条件下复杂路径规划问题提供智能算法选型依据与技术实现方案;③支持科研人员复现主流优化算法并开展横向性能对比实验,推动算法改进与实际落地。; 阅读建议:建议读者结合提供的Matlab代码逐模块分析算法实现流程,重点理解目标函数设计、约束条件处理及参数敏感性分析部分,可通过调整问题规模与算法参数进行对比实验,进一步拓展至动态路径规划或大规模网络优化等延伸场景

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧