本人有幸在Learning Hard举行的整点抢书活动《Learninghard C#学习笔记》回馈网友,免费送书5本中免费获得了一本《LEARNING HARD C#学习笔记》,我(梦在旅途)虽然从事.NET开发多年,但一直都没有能好好的系统学习,特别是C#5.0的知识,现如今有幸得到这本书,可以好好的温习、巩固和提升, 非常感谢Learning Hard!

我在收到该书后,花了约两周的时间就看完了,主要是集中在晚上及周末时间,因为本书是从浅入深讲解C#知识,我虽谈不上什么高手,但C#早期版本的相关知识基本都熟悉和掌握了,所以在阅读的时候侧重点主要放在后面(13章及以后),速度也就比较。我阅读一般喜欢做总结及摘要,书中重要的知识点会做上标记,以便后面再次复习。孔子曰:温故而知新,可以为师矣,所以我在看完这本书后,觉得有必要针对书中的要点及自己平时的经验积累总结一些文章,以便后续再次温习,也供新手学习参考。文中可能有些因理解差异存在不足,还请大家评论与指点,共同进步,谢谢!

一..NET基础

CLR:公共语言运行库

CTS:通用类型系统

CLS:公共语言规范

受CLR管理的代码称为托管代码,否则称为非托管代码

二.类型与变量

数据类型分为:值类型与引用类型

值类型有:数值、枚举、结构体

引用类型有:接口、类、委托、字符串、数组

值类型在栈中分配内存空间并保存数据;

引用类型在堆上分配内存空间并保存数据,且在栈中保存指向堆中的数据地址;

装箱:值类型转换为引用类型;

拆箱:引用类型转换为值类型;

常量:Const标识,在声明时就必需初始化,且不能更改,通过类名来访问;

变量:

Static:初始化一次并持续保存在内存空间中,可反复读写;

Readonly:仅允许在声明时或所在类的构造函数中初始化,其它地方不可更改;

Static Readonly与Const的区别:

Static Readonly可在构造函数中初始化,而Const则不行;

Static Readonly在运行时分配内存空间,而Const则在编译时分配内存空间;

三.运算符

运算符重载定义方法如下:

Public static 类型 opearator 运算符(类型1,类型2);

注意:运算符重载方法的访问修饰符必需为Public static

四.条件与循环

条件语句:1.if-else        2.switch

循环语句:1.while          2.do-while        3.for          4.foreach

跳转语句:

Break:跳出循环或分支;continue:跳过本次循环并继续执行下一次循环;

Goto:跳转到指定的标签处(不建议使用);

Return:退出所在方法,并直接返回或返回值,不限深度;

五.类

类访问修饰符

Public 公共不受限访问,同程序集或引用该程序集中的其它程序集中类内外部均可访问;

Private 私有访问,仅限在类内部访问;

Protected 受保护访问,仅限在类内部及其子类内部中可访问;

Internal 在同一个程序集中类内外部均可访问;

Protected internal 在同一个程序集的类内部及其子类内部中可访问;

注意:默认不添加修饰符,则表示以Internal形式访问

Sealed 密封,不可继承;

Abstract 抽象,必需继承,若是抽象成员则在子类中需用override重写该成员;

Statict 静态密封,不可实例化,且不可继承;

在命名空间中定义的元素(类,接口,结构体,委托等)无法显式地声明为 private、protected 或 protected internal

构造函数:

1.可重载;2.没有声明则编译后默认生成无参且空实现的构造函数;3.构造函数名与类名相同;

4.无返回值;

作用:通过NEW相应的构造函数来实例化一个对象;

静态构造函数:

1.不能使用访问修饰符;2.有且只能定义一个无参构造函数(即:不能重载);3.只会执行一次;

作用:初始化类中静态成员;

析构函数:

  1. 无访问修饰符;2.有且只能定义一个无参析构函数;3.不能重载;4.由垃圾回器GC自动调用;5.结构体不能定义析构函数;

索引指示器:

定义方法:修饰符 类型 this[索引参数列表,…]

注意:索引指示器访问修饰符不能为static

六.类与结构体区别

1.类是引用类型,结构体是值类型;

2.结构体不能在声明字段时进行初始化,而必须在构造函数中进行初始化,而类不受限制;

3.类默认的无参构造函数在显式声明后则不存在,而结构体中不能显式声明,所以一直存在;

4.结构体仅可实现接口,不能继承类或结构体,而类可以继承类也可实现接口;

5.结构体不能声明为abstact、sealed、static,而类均可以;

6.结构体可以直接不用new声明对象,但未赋值的字段不可用,而类必需则通过NEW来实例化对象;

阅读《LEARNING HARD C#学习笔记》知识点总结与摘要一的更多相关文章

  1. 阅读《LEARNING HARD C#学习笔记》知识点总结与摘要系列文章索引

    从发表第一篇文章到最后一篇文章,时间间隔有整整一个月,虽只有5篇文章,但每一篇文章都是我吸收<LEARNING HARD C#学习笔记>这本书的内容要点及网上各位大牛们的经验,没有半点废话 ...

  2. 阅读《LEARNING HARD C#学习笔记》知识点总结与摘要三

    最近工作较忙,手上有几个项目等着我独立开发设计,所以平时工作日的时候没有太多时间,下班累了就不想动,也就周末有点时间,今天我花了一个下午的时间来继续总结与整理书中要点,在整理的过程中,发现了书中的一些 ...

  3. 阅读《LEARNING HARD C#学习笔记》知识点总结与摘要二

    今天继续分享我的阅读<LEARNING HARD C#学习笔记>知识点总结与摘要二,仍然是基础知识,但可温故而知新. 七.面向对象 三大基本特性: 封装:把客观事物封装成类,并隐藏类的内部 ...

  4. Deep learning with Python 学习笔记(11)

    总结 机器学习(machine learning)是人工智能的一个特殊子领域,其目标是仅靠观察训练数据来自动开发程序[即模型(model)].将数据转换为程序的这个过程叫作学习(learning) 深 ...

  5. Deep learning with Python 学习笔记(10)

    生成式深度学习 机器学习模型能够对图像.音乐和故事的统计潜在空间(latent space)进行学习,然后从这个空间中采样(sample),创造出与模型在训练数据中所见到的艺术作品具有相似特征的新作品 ...

  6. Deep learning with Python 学习笔记(9)

    神经网络模型的优化 使用 Keras 回调函数 使用 model.fit()或 model.fit_generator() 在一个大型数据集上启动数十轮的训练,有点类似于扔一架纸飞机,一开始给它一点推 ...

  7. Deep learning with Python 学习笔记(8)

    Keras 函数式编程 利用 Keras 函数式 API,你可以构建类图(graph-like)模型.在不同的输入之间共享某一层,并且还可以像使用 Python 函数一样使用 Keras 模型.Ker ...

  8. Deep learning with Python 学习笔记(7)

    介绍一维卷积神经网络 卷积神经网络能够进行卷积运算,从局部输入图块中提取特征,并能够将表示模块化,同时可以高效地利用数据.这些性质让卷积神经网络在计算机视觉领域表现优异,同样也让它对序列处理特别有效. ...

  9. Deep learning with Python 学习笔记(6)

    本节介绍循环神经网络及其优化 循环神经网络(RNN,recurrent neural network)处理序列的方式是,遍历所有序列元素,并保存一个状态(state),其中包含与已查看内容相关的信息. ...

随机推荐

  1. Microsoft .NET Native Developer Preview 内部初探(1)

    Microsoft .NET Native Developer Preview 内部初探(1) MS 前段时间发布了.NET Native Developer Preview,被广大人员赋予“C++的 ...

  2. 可在广域网部署运行的QQ高仿版 -- GG叽叽V2.0,增加网盘和远程磁盘功能(源码)

    尽力2~3周发布一个版本,我这次也没有失言.这段时间内,我仿照QQ的微云功能,在GG中增加了网盘的功能,而且,我还自创了一个QQ没有的新的功能:远程磁盘.正如远程桌面一样,远程磁盘允许我们像访问本地磁 ...

  3. node(redis)

    给出node下redis操作的简单例子: var redis = require("redis"), client = redis.createClient(6379,'127.0 ...

  4. node(邮件发送特性)

    1.安装 npm install nodemailer https://github.com/andris9/Nodemailer 2.配置发邮件的账户开启SMTP功能: 3.程序样例如下: var ...

  5. 人人都是 DBA(X)资源信息收集脚本汇编

    什么?有个 SQL 执行了 8 秒! 哪里出了问题?臣妾不知道啊,得找 DBA 啊. DBA 人呢?离职了!!擦!!! 程序员在无处寻求帮助时,就得想办法自救,努力让自己变成 "伪 DBA& ...

  6. WPF 窗口自适应

    窗口自适应就是说,当主窗口缩放的时候,内部的控件位置自动的调整,而不是隐藏掉.这主要依赖于Grid布局. 1.比如这个groupbox 本身是在一个Grid的Row中的.缩放之后,左边的button不 ...

  7. Netbeans+CodeIgniter搭建PHP开发环境

    为什么选这样的开发环境 常见的PHP集成开发环境有Eclipse+PDT,NetBeans,PHPEclipse,Zend Studio,PhpStorm等,我经过多方面的考虑(费用.易用性.功能.活 ...

  8. Silverlight无法启动调试,错误“Unable to start debugging. The Silverlight Developer Runtime is not installed. Please install a matching version.” 解决办法

    今天调试Silverlight出现了以下错误: 意思是“无法启动调试,因为Silverlight Developer Runtime没有安装,请安装一个匹配的版本”.但是按Ctrl + F5可以调试运 ...

  9. 我的第一篇Markdown语法博客

    这是我的第一篇使用markdown语法编写的博客 使用的编辑器为Sublime Text2 并且使用了sublog插件, sublog是一个开源项目 sublog 并且参考了作者的博客 AmongOt ...

  10. 页面动态加入<script>标签并执行代码

    在页面中动态追加html片段的时候,有时候动态添加的代码会含有<script>标签,比如用了一些模板引擎,或者你的代码有些复杂的时候.然而我们用DOM提供的innerHTML方式来添加代码 ...