---恢复内容开始---

第二章 核心C#

2.7 命名空间可以使用别名,但是这样做有什么好处?

2.12 C#预处理器指令

#define DEBUG

#if DEBUG

  Console.WriteLine("hahaha...");

#endif

---恢复内容结束---

第二章 核心C#

2.7 命名空间可以使用别名,但是这样做有什么好处?

2.12 C#预处理器指令

#define DEBUG

#if DEBUG

  Console.WriteLine("hahaha...");

#endif

第七章

运算符重载  关键字 operator

第八章 委托

委托的好处:

1.相当于用方法作为另一方法参数(类似于C的函数指针)

2.在两个不能直接调用的方法中作为桥梁,如:在多线程中的跨线程的方法调用就得用委托

3.当不知道方法具体实现什么时使用委托,如:事件中使用委托

第13章 异步编程

13.3.5 异步编程 多个异步方法并行

Task<T> task1= MethodAsync(new T());

Task<T> task2= MethodAsync(new T());

awit Task.WhenAll(task1,task2);

当任务之间不存在依赖关系时,可以并发

第14章 内存管理和指针

托管代码自动执行垃圾回收

非托管代码需要自己实现垃圾回收

指针:了解一下

第15章 反射

15.2 自定义特性

System.Attribute 特性类

[AttributeUsage(AttributeTargets.Property,AllowMultiple=false,Inherited=false)] 自定义特性时需要增加此特性的使用范围

public class SelfdefineAttribute:Attribute  声明的自定义特性类必须继承Attribute

15.3 反射

System.Type 抽象基类:主要是获取实例的数据类型

System.Reflection.Assembly

第16章 错误和异常

System.Exception

try{}catch(){}finally{}

一般在finally释放资源

第19章 程序集

程序集:dll或者exe文件

第20章 诊断

(1)代码协定

NuGet:Code Contracts Editor Extensions

System.Diagnostics.Contracts

前提条件,后置条件:必须放在方法开头

(2)跟踪

TraceSource类

暂时不太明白跟踪的意义在哪里?定位程序报错的位置?

(3)事件日志

第21章 任务、线程和同步

System.Threading

System.Threading.Tasks

任务并行性和数据并行性:

Parallel类

Parallel.For 循环 数据并行性 P560示例

Parallel.Invoke() 任务并行性

为了更好的控制并行动作,可以使用Task类,创建的是后台线程

一般任务使用线程池,但也有长时间运行的任务需要单独创建线程

任务最新形式:Task.Run( () => "OK" );

连续任务:ContinueWith()

如果需要更多控制,使用 Thread类创建前台线程

前台线程和后台线程唯一区别就是:应用程序必须运行完所有的前台线程才可以退出

21.7线程问题

争用条件和死锁

lock(object){}

21.8 同步

为了解决死锁问题

lock语句  主力

Interlocked类  用于变量

Monitor类

第22章 安全性

IIdentity接口

IPrincipal接口

System.Security.Cryptography 加密的名称空间

第24章 文件和注册表操作

暂时跳过

第25章 事务处理

System.Transactions

TransactionScope scope = new TransactionScope();
scope.Complete();

System.EnterpriseServices 自动事务处理

优点:多个对象运行在同一个事务中

缺点:需要COM+主机模型,使用这个技术的类必须派生自基类 ServicedComponent

隔离级别:

(1)脏读

(2)不可重复读

(3)幻读

第26章 网络

C#高级编程(第九版) 知识点梳理的更多相关文章

  1. Python高级编程第二版--笔记

    不只是CPython Stackless Python Jython(与java集成) IronPython(与net集成) PyPy python真正出众的领域在于围绕语言打造的整个生态系统. Py ...

  2. Linux&c 文件操作,线程进程控制,网络编程,简单知识点梳理

    一:文件操作 在linux下,一切皆文件,目录是文件,称为目录文件,内容是该目录的目录项(但是目录只有内核可以编辑,超级用户也不可以编辑),设备也是设备文件,在/dev存放的就是一些设备文件,linu ...

  3. Linux&c 文件操作,线程进程控制,网络编程,简单知识点梳理

    一:文件操作 在linux下,一切皆文件,目录是文件,称为目录文件,内容是该目录的目录项(但是目录只有内核可以编辑,超级用户也不可以编辑),设备也是设备文件,在/dev存放的就是一些设备文件,linu ...

  4. UNIX环境高级编程第二版代码笔记

    1. 第一个程序 gcc 1.1.c  /tmp/ccbnJqcB.o: In function `main': 1.1.c:(.text+0x17): undefined reference to ...

  5. 【读书笔记】C#高级编程 第九章 字符串和正则表达式

    (一)System.String类 System.String是一个类,专门用于存储字符串,允许对字符串进行许多操作.C#提供了关键字string和相关的语法,以便使用这个类更轻松. 例子: 使用运算 ...

  6. C#高级编程笔记之第三章:对象和类型

    类和结构的区别 类成员 匿名类型 结构 弱引用 部分类 Object类,其他类都从该类派生而来 扩展方法 3.2 类和结构 类与结构的区别是它们在内存中的存储方式.访问方式(类似存储在堆上的引用类型, ...

  7. C#高级编程笔记之第二章:核心C#

    变量的初始化和作用域 C#的预定义数据类型 流控制 枚举 名称空间 预处理命令 C#编程的推荐规则和约定 变量的初始化和作用域 初始化 C#有两个方法可以一确保变量在使用前进行了初始化: 变量是字段, ...

  8. 《UNIX环境高级编程》源码配置——apue.3e 安装

    转载从:http://blog.csdn.net/songshimvp1/article/details/51440545 网上大都是针对UNIX高级编程第二版的头文件搭建,现在对于第三版来说有些过时 ...

  9. ASP.NET MVC 4高级编程(第4版)

    <ASP.NET MVC 4高级编程(第4版)> 基本信息 作者: (美)Jon Galloway    Phil Haack    Brad Wilson    K. Scott All ...

  10. 解读经典《C#高级编程》第七版 Page38-45.核心C#.Chapter2

    前言 控制流是语言中最基础的部分,我们不谈具体的细节,只讲讲一些关键和有趣的点. 01 流控制 条件语句:if, else if, else if语句的使用非常值得细讲,如何是好的使用习惯.有一点非常 ...

随机推荐

  1. SRD_PreloaderCore

    预加载 Preloader CoreVersion 1.10SumRndmDde This plugin requires the Game Upgrade plugin:http://sumrndm ...

  2. Vue系列之 => webpack-babel的配置

    安装 cnpm i babel-core@6.26.3 babel-loader@7.0.0 babel-plugin-transform-runtime -D cnpm i babel-preset ...

  3. Can't find msguniq. Make sure you have GNU gettext tools 0.15 or newer installed

    Python Django生成国际化和本地化.po文件步骤1.在settings文件中,添加一下内容: LANGUAGES = ( ('zh-hans', ugettext_lazy('Simplif ...

  4. 执行python解释器的两种方式

    执行python解释器的两种方式 1.交互式 python是高级语言,是解释型语言,逐行翻译,写一句翻译一句 print ('hello world') 2.命令行式 python和python解释器 ...

  5. etcd v3 备份恢复

    备份数据: # ETCDCTL_API=3 etcdctl --endpoints localhost:2379 snapshot save snapshot.db 恢复数据: # ETCDCTL_A ...

  6. Arrays工具类

    1.Arrays工具类针对数组进行操作的工具类 提供了排序查找等功能 2.方法: Arrays.toString(int[] a) 将数据转换成字符串 Arrays.sort(int[] a) 将数组 ...

  7. 【ubuntu】-桌面假死的解决办法

    第一,通过ctrl+art+F1(1-6),启动本地终端 切换到了字符界面tty1 第二,查询进程,ps -e |grep tty7 得到tty7的pid号 第三,杀死tty7的进程 , kill 9 ...

  8. LeetCode 链表(旋转链表61)

    /* * 给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数. * 构造一个环,对链表进行处理. * *实现原理:先遍历一遍,得出链表长度,注意K可能大于len,之后令k% ...

  9. MySQL数据库的sql语句的导出与导入

    1.MySQL数据库的导出 (1)选择对应的数据库 (2)点击右键选择Dump SQL File (3)会出现保存框,选择保存的位置,名称不建议重新起名 (4)点击保存出现 (5)点击Close就可以 ...

  10. 51nod1363 最小公倍数之和

    题目描述 给出一个n,求1-n这n个数,同n的最小公倍数的和. 例如:n = 6,1,2,3,4,5,6 同6的最小公倍数分别为6,6,6,12,30,6,加在一起 = 66. 由于结果很大,输出Mo ...