教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 范文大全 > 读后感大全 >

《深入理解C#(第2版)》的读后感10篇(2)

来源:网络收集 时间:2026-01-27
导读: 还是引用我之前第一章说的话,有人说C#就像.NET程序员的初恋情人,即使有那么一天,你在其他平台的身体上折腾来折腾去,但是你依旧不会忘记,并且愿意时常幻想,曾经.NET带给我们的美妙感觉。 《深入理解C#(第2版

  还是引用我之前第一章说的话,有人说C#就像.NET程序员的初恋情人,即使有那么一天,你在其他平台的身体上折腾来折腾去,但是你依旧不会忘记,并且愿意时常幻想,曾经.NET带给我们的美妙感觉。

  《深入理解C#(第2版)》读后感(六):c#学习,主要和java对比

  c#学习

  1,namespace,using不如package,import。命名空间别名,::,global::,alias,这些干啥呢,为了一点点的灵活性一个补丁接着一个。 java的ide让文件路径和package名称对应,简化了程序员的工作,不用选择了,package不能用相对路径访问子package单元。c#的这种灵活性我觉得没必要。

  2,string,String2种写法,我有选择焦虑症

  3,partial是好东西,为生成代码而生。对静态语言来说生成代码简直是标配。这个感觉非常好,因为基本上目的明确,你明确声明这个为partial。不怕这种灵活性。

  但感觉扩展函数有点过了,估计主要是c#3为引入linq准备的机制,用来实现写dsl很酷,但易被滥用。

  java8也加入default methods,来方便引入类似linq的stream。但java8是不允许放到不同文件里的啊

  c#的扩展函数可以放到任意文件里,这个灵活性有点吓人。

  4,访问级别默认private比java的默认package好。

  5,static class不错,scala用object。java中没有对应的。但内嵌class不包含外部对象引用会不会不方便?

  6,yield return搞迭代器不错,跟python迭代器一样了,很酷

  7,值对象,又一个选择焦虑,这个对象不大,但用struct还是class呢?struct提供的那一点locality性能优势和复制劣势如何取舍?

  truct A

  {

  rivate int a;

  ublic A(int i) : this()

  {

  a = i;

  }

  }

  可以直接A a;struct默认会有个无参构造函数,也就是说没有immutable的struct。初见也有点出人意料。真的有必要要struct吗?

  8,property,不用生成getter,setter。简洁不少,最常用的估计是{get; private set;},就是set时占用了个value关键词。

  9,delegate,本来要2个名字现在只要一个。java中的interface Runnable { void run() },变成了Action。本质上都是在模仿函数式编程中的函数,通过只有一个方法的接口来模拟高阶函数。

  delegate少了个名字但引入了个新的概念和关键词。感觉亏了。不如java。

  后来也都引入了lambda表达式。结合type inference。综合了lisp,schema这些函数语言的能力和静态类型的编译时检查。

  10,event,a调用b,a依赖于b,能b依赖于a吗?依赖倒置对模块化设计来说很关键,订阅发布模式。event提供了语言级支持。结合lambda和method reference(java这么叫的),用这个写ui程序很爽。我觉得这个值得引入这个概念和占用一个关键词。

  11,对象和集合的初始化,在需要常量集合,builder模式时挺有用的,并且还可以嵌套初始化,最后的数据格式挺漂亮,类似带类型信息的json。c# object notation。跟匿名类型格式有一样。

  12,Nullable<T>,可空的值类型。引用类型永远可空。这不对称啊。应该是引用类型不可空。Nullable<T>这里的T可是值类型也可是引用类型。Tony-Hoare在微软啊,怎么允许c#的引用可为null?

  13,Linq语法。这个为什么??我实在不懂,为了跟sql类似搞个这种东西出来,那种流式(链式)api不是挺爽吗?

  14,可选参数,命名实参。java选择了不予支持,支持可选参数能省掉几个构造函数,但可能会引诱人写出比需求更多的构造接口。命名实参让形参的名字也关键起来了,java用builder模式部分解决这个问题,但有还是要好的。

  15,enum只能数值,这个太狭隘了吧。不如java的enum。java enum就是instance数量限定的类。singlton模式用enum实现

《深入理解C#(第2版)》的读后感10篇(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/fanwen/8595.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)