ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

CLR Via C# 读书笔记(待续)

2022-01-28 10:04:02  阅读:182  来源: 互联网

标签:待续 读书笔记 C# 类型 参数 如何 泛型 CLR


  当年张三丰教张无忌太极拳曾问过:“无忌你记住了吗?”,无忌答“忘完了”。张三丰哈哈大笑:“好”,于是无忌学会了太极拳。但现实中,书看一遍忘完了,是真的忘完了。。。现在也没心思再自己专细节,这部分内容待我第二次读的时候再完善吧(逃...)

写在最前面

  到了年末摸鱼的欢乐时光,可以干点别的事情。首先介绍下我自己,2021年工作半年,入坑WPF。有幸遇到以为很厉害的前辈,跟我讲WPF的精美设计,前卫思想。不管WPF未来如何,的确能学到很多东西。这里记录分享看过的《CLR Via C#》。这里多说几句,私以为博客园虽然有很多大神写的精妙文章,让人佩服他们的深度,但是作为初学者看这些文章是不够的。没有建立系统的框架,这些知识点很快就会忘记。零食虽好吃,但是长身体仍需主食。这里只是对这本书的概括理解,如何有兴趣,一定要去看原书。最后,在下见识短浅,欢迎各位看官批评指正。

简介

这本书能够学到什么?
  在看这本书之前,我一直对程序的运行过程一知半解,比如编写的C#代码是如何在内存中加载,如何开始运行。这些底层知识对如何正确高效地设计代码有着重要的作用,例如,如何加快程序的运行速度(减少内存分配,减少耗时方面),如何理解复杂的线程并发交互。这本书较为系统地讲解了CLR,Common Language Runtime的设计理念,什么是CLR?类似于Java的虚拟机,CLR也是一个抽象的概念。可以把它当做一个程序,一个操作系统会调用的初始化程序。运行C#,F#等语言编写的程序所需要的.net framework和.net core又是什么?它们是基础的类库,其中一些库只能由CLR使用,一些库提供给开发人员使用(这两部分概念是我自己理解,可能有误)。CLR提供了内存管理、程序加载、安全性、异常处理、线程同步等功能。这本书的内容很是深刻,不是粗浅过一遍就能完全理解,但不必追求完全理解,在工作过程中时常翻阅,一定能够大有裨益。

CLR基础

  这部分内容属于平时用到比较少的,主要讲解了1.编写的C#代码如何编译,如何运行。2.c#的变量和函数是如何保存到模块中的(dll)3.对于dll的管控问题,如何解决相同的dll名字造成的

设计类型

  这部分介绍CLR中的类型
  4.基础类型:所有的类的基类System.Object类(有哪些函数);类型的转换(as,is);命名空间(解决了重复问题);类型对象在运行时如何在堆栈中分配空间;
  5.基元类型,引用类型和值类型:基元类型(int,double);引用类型和值类型(是否在堆中分配);拆箱与装箱(有很多函数是以object类型作为参数,当传入int,doubled等值类型时,会在堆中分配内存,封装成对象,利用好这一点能够优化编程的速度和内存);对象哈希吗;dynamic类型(在编译时检查定义为dynamic变量的类型,再调用函数)
  6.类型和成员基础:类型的各种成员(敞亮,字段,实例构造器等等);类型可见性(private,protect,internal);成员可见性;静态类;分布类(partial);多态和版本控制(virtual)
  7.常量和字段:const和readonly(前者以值嵌入到dll中)改动需要重新编译
  8.方法:构造器(值类型不允许无参);类型构造器(static);重载;扩展方法(this)
  9.参数:可选参数(默认参数);隐式局部变量(var);以应用传递参数(ref out);可变参数(params)
  10.属性:无参属性;有参属性(c#索引器)
  11.事件:如何定义事件(1.参数args2.事件成员event3.on方法4.输入转化为事件);实现事件
  12.泛型:FCL泛型(已定义System.Array等且有大量方法);泛型基础(每个泛型都是一个新类,list从object,dictionary从dictionary<string,guid>);泛型接口;泛型委托;泛型逆变和协变(参数可以为派生,返回可以为基类);泛型方法;可约束性和约束(Where T)
  13.接口:隐式接口和显示接口(前者为默认,后者为接口中定义的方法);泛型接口
  

基本类型

  14.字符、字符串和文本处理:char类型;string类型(文化,字符串留用);stringbuilder(转化为string);tostring(格式化方法);解析(parse);编码(Unicode);安全字符串(securestring)
  15.枚举类型和位标志:
  16.数组:初始化;转型(向上);派生自system.array;实现IEnumberable,ICollection,IList;创建下限非0;不安全的数组(stackalloc)
  17.委托:委托的实现;如何显示调用委托链;减少委托
  18.定制特性:
  19.可用值类型:

核心异常

  20.

线程处理

  21.

标签:待续,读书笔记,C#,类型,参数,如何,泛型,CLR
来源: https://www.cnblogs.com/chendasxian/p/15849483.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有