数据使用请教一下

睡神在睡觉 2013-04-18 07:13:44
dynamic,var,object

这样的数据类型该什么时候用呢?该怎么区分去使用?本质区别是啥咧?有点茫然,求指点~
...全文
186 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
quanben 2013-04-23
  • 打赏
  • 举报
回复
表示用的最广泛的是var,用它写出的代码叫那个漂亮啊,而且在保证质量情况下在C#本已很高的开发效率上进一步大幅提高。另外这个var和javascript还是略微有些去别的, javascript是弱类型,所以对变量类型根本不在乎(所以实际更接近dynamic,但也不绝对一样),c#中用var仍旧保持了强类型。这个类似物在别的语言中目前只有D语言看到。
  • 打赏
  • 举报
回复
object从1.0就有了 var从3.5有的 dynamic从4.0才有
threenewbee 2013-04-22
  • 打赏
  • 举报
回复
引用 3 楼 cuit 的回复:
dynamic是从ruby取的精髓 var是从javascript取的精髓 object是一个面向对象语言最基本的类。
C#的var和js的var完全不同! C#的dynamic类似VB6的object。
threenewbee 2013-04-22
  • 打赏
  • 举报
回复
var 不是数据类型,而是语法糖,也就是让编译器去判断,这个var是什么。 var x = 1;编译器视作int x = 1; var x = "a";编译器视作string x = "a"; var x; //报错 var x = 1; x = "a"; //报错 dynamic本质上是object,但是dynamic执行后期的绑定,也就是你可以在编写代码的时候调用任意的成员,编译器都会产生相应的代码,而不管这个成员是否存在。 object只是任何对象的基类,如果你不执行一个转换,编译器不允许你调用任何这个类型的成员。 object o = new Person(); o.Name = "a"; // error (o as Person).Name = "a"; // correct
gnimgnot 2013-04-22
  • 打赏
  • 举报
回复
dynamic是从ruby取的精髓 var是从javascript取的精髓 object是一个面向对象语言最基本的类。
睡神在睡觉 2013-04-22
  • 打赏
  • 举报
回复
= =!没人解答么。。。
燕雀之志 2013-04-22
  • 打赏
  • 举报
回复
引用 4 楼 caozhy 的回复:
var 不是数据类型,而是语法糖,也就是让编译器去判断,这个var是什么。 var x = 1;编译器视作int x = 1; var x = "a";编译器视作string x = "a"; var x; //报错 var x = 1; x = "a"; //报错 dynamic本质上是object,但是dynamic执行后期的绑定,也就是你可以在编写代码的时候调用任意的成员,编译……
引用 8 楼 caozhy 的回复:
引用 7 楼 sleep0110 的回复: 在用法上大概算是知道吧,现在用var现在只是在匿名方法的等地方用,object用的就广泛了,几乎处处用,最明显的就是反射用吧,dynamic用起来是方便,但是隐性问题可能多些(A在写代码的时候定义的是int,B在写代码的时候同样的东西用成string)想听听你们怎么认为的?或者说我用的是不是不恰当? 可惜你知道得很多都是错的。 var和匿名方法……
学习了,我的理解是dynamic类型在编译期间不进行任何的类型检查,类型检查是在程序运行的时候。实际上,它就是个object类型。
threenewbee 2013-04-22
  • 打赏
  • 举报
回复
引用 7 楼 sleep0110 的回复:
在用法上大概算是知道吧,现在用var现在只是在匿名方法的等地方用,object用的就广泛了,几乎处处用,最明显的就是反射用吧,dynamic用起来是方便,但是隐性问题可能多些(A在写代码的时候定义的是int,B在写代码的时候同样的东西用成string)想听听你们怎么认为的?或者说我用的是不是不恰当?
可惜你知道得很多都是错的。 var和匿名方法没有关系。稍微沾边的是匿名类型对象。 dynamic的“隐性问题”不是什么问题,因为object也存在。你无非用两个办法使用object,一个是强制类型转换,如果你搞错了类型,同样会收到一个无法转换的异常。至于反射也是一样,你同样不能给一个int类型的属性用反射赋给一个string类型。 无论是var还是dynamic都是简化了你代码的书写。
睡神在睡觉 2013-04-22
  • 打赏
  • 举报
回复
在用法上大概算是知道吧,现在用var现在只是在匿名方法的等地方用,object用的就广泛了,几乎处处用,最明显的就是反射用吧,dynamic用起来是方便,但是隐性问题可能多些(A在写代码的时候定义的是int,B在写代码的时候同样的东西用成string)想听听你们怎么认为的?或者说我用的是不是不恰当?
内容概要:本文聚焦于“基于配电网韧性提升的应急移动电源预配置和动态调度”研究中的MPS预配置部分,属于SCI一区高水平论文的复现工作。通过Matlab编程实现,构建了面向极端事件下配电网快速恢复能力提升的优化模型,重点解决应急移动电源(MPS)在灾前的科学预配置问题。研究系统阐述了问题背景、建模逻辑与求解方法,强调科研过程中逻辑严谨性、借力高水平成果的重要性,并倡导在扎实基础上追求创新突破。资源包包含完整代码、数据及论文资料,支持读者复现结果并进一步开展动态调度等后续研究,对提升电力系统抗灾韧性具有重要的理论与实践价值。; 适合人群:具备电力系统分析、优化建模及Matlab编程基础的科研人员,特别适用于从事电网韧性、应急调度、微电网规划、综合能源系统等方向的硕士、博士研究生及高校研究人员。; 使用场景及目标:① 复现并深入理解SCI一区论文中关于MPS预配置的数学模型与算法实现;② 掌握利用Matlab进行电力系统应急优化仿真与韧性评估的技术方法;③ 探究应急电源空间配置与电网恢复性能间的量化关系,为实际电力系统防灾规划与调度决策提供理论依据和技术支撑。; 阅读建议:建议读者结合提供的网盘资源,按照文档结构循序渐进地学习,重点关注模型构建的物理意义、约束条件设定及Matlab代码的实现细节,务必动手运行与调试代码以加深理解。同时可参考团队发布的其他相关研究,拓展在智能优化算法、鲁棒调度等领域的综合应用能力。
内容概要:本文系统阐述了Private访问控制在芯片设计全生命周期中的实战应用,覆盖设计态、验证态、DFT态到制造态四大阶段,提出基于EDA工具链的四维防护体系。通过Synopsys Design Compiler约束脚本、UVM验证环境私有化配置以及Mentor Tessent DFT私有指令集实现,展示了如何在RTL设计、仿真验证、测试向量生成等关键环节实施精细化访问控制,有效防止IP泄露与非法调试。重点案例包括JTAG私有指令定义、扫描链信号隔离、测试向量AES-256加密及eFuse密钥保护机制,构建从硬件到流程的安全闭环。; 适合人群:从事芯片前端/后端设计、DFT开发、验证工程的技术人员,以及关注集成电路安全的架构师与项目管理人员,具备数字电路设计与EDA工具使用基础者更佳。; 使用场景及目标:①在芯片设计中实现IP核与敏感寄存器的访问隔离;②提升DFT测试安全性,防范通过JTAG接口进行的数据窃取;③构建企业级权限管理体系,支持多团队协作下的安全交付;④满足高安全等级芯片(如加密芯片、AI芯片)的合规性要求。; 阅读建议:此资源强调实战性,建议结合EDA工具实际操作相关脚本(TCL/UVM/SystemVerilog),重点关注私有指令设计、权限绑定与加密策略的集成应用,并在项目中评估安全与可测性的平衡,以实现高效可靠的安全闭环设计。

111,131

社区成员

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

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

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