C#技术合集
包括C#最佳实践、本质论语言学习等
存在morning
乐于了解新技术,善于复盘总结,不是很聪明,但能够持续进步。
展开
-
【C#技术相关合集】目录导航
C#技术相关合集按照学习的分类布局如下几部分内容:【从Java到C#系列】,内容是关于Java与C#的一些区别和比较,是我在刚实习的时候切换语言的时候写的系列博客。【深入理解CLR】,讲的是.Net底层CLR的执行机制,偏重于底层原理,是我在想要做专题分享的时候写的系列博客【C#编程最佳实践】,内容是我在工作中用C#编程使用的一些较好的解决方案,偏重实战积累,是我在工作中持续积累的内容。...原创 2019-02-01 12:27:50 · 1090 阅读 · 0 评论 -
【XML学习 一】XML基础
最近接了个活要解构XML和JSON,武哥说让了解下XML Schema,所以兴致勃勃的打开了W3C来学习一下,结果勒: 好吧,因为之前只是用了一下xml,知道大概结构,依据一贯的学习风格:知其然,知其所以然。所以决定成体系的速成一下,HTML和XHTML并不是关注的重点,所以这里只是简单介绍一下,如果以后有这方面学习的需求,再多看看。1,什么是HTML语言 HTML 是用来描述网页的...原创 2018-07-01 17:23:44 · 632 阅读 · 0 评论 -
【XML学习 二】DTD原理及使用
咱要摒弃旧技术,就得了解旧技术(当然这里指的新旧是依然有部分联系的哈,不是截然不同的),我认为原因有二:旧的技术有时候不是被全盘抛弃的,新的技术有时候(大多时候)是脱胎于旧技术的,所以了解旧的技术并不算是浪费时间。了解了旧技术之后,你就会发现痛点,哪里不好用,哪里限制太死,这个时候再学习新技术,对比理解一方面可以加深新技术革新部分的记忆,保持印象深刻。另一方面又可以对这个技术的整体有个认知...原创 2018-07-02 08:40:09 · 1266 阅读 · 0 评论 -
【XML学习 三】XML Schema原理及使用
经历了第一篇XML入门和第二篇DTD的理解,现在终于可以进入到XML Schema的学习了,正如前边提到的,Schema实际上可以说是DTD的一种扩展,一种替代品,或者可以说是DTD的一种优化。Schema基础Schema用途和能力用途XML Schema 的作用是定义 XML 文档的合法构建模块,类似 DTD。能力比较了下DTD和Schema的能力,我感觉其实...原创 2018-07-03 08:49:37 · 2894 阅读 · 0 评论 -
【C#本质论 一】C#概述
从今天开始,学习《C# 本质论7.0》这本书,当然作为一个已经了解过面向对象思想和有一定Java和C#编程基础的人,在学习记录的过程中对于简单的前几章学习内容准备采用**QA和记录重点提炼的方式**记录,也就是对于重点难点以及自己之前不理解的地方采用论述或者问答的形式记录。原创 2019-11-26 21:11:01 · 996 阅读 · 0 评论 -
【C#本质论 二】数据类型
本章来介绍C#语言里的基本数据类型:八种整数类型、两种用于科学计算的二进制浮点类型、一种用于金融计算的十进制浮点类型,一种布尔类型以及一种字符类型。整数类型整数类型有以下几种,BCL是什么呢?在我的另一篇博客里介绍到了,其实就是CLR定义的适用于全平台语言的基本类型。 要使用C#自己的类型而不是BCL类型!要用string而不是String这也解释了多年的困惑,为啥C#里有String和s...原创 2019-11-27 10:12:02 · 559 阅读 · 0 评论 -
【C#本质论 三】更多数据类型
上篇博客介绍了基本的数值类型,以及字符、字符串的使用方式,本篇博客详细介绍下更多的常用数据类型:元组、数组,并且介绍下可空修饰符以及值类型和引用类型的区别。元组元组允许在一个语句中完成所有变量的赋值并且允许每一项都有不同的数据类型,在我看来元组更像是一个阉割版本的类,因为我们这么做的时候通过是因为这些变量存在某些业务关系,但是它又不需要像类那样重,需要有很多方法什么的。元组的使用方式多种多...原创 2019-11-28 10:13:46 · 316 阅读 · 0 评论 -
【C#本质论 四】操作符和控制流程
本篇博客延续前三篇的写作方式,因为内容较为基础,只是以冷热知识的形式列出旧有的容易忽视的C#特性及新出现的特性,当然对一些之前较为模糊的概念也予以整理。概念重现1,操作符的概念,操作符分为一元、二元、三元三大类,分别对应一、二、三个操作数,分别包含如下的逻辑:一元正负操作符,表示数值的正负二元算术操作符,包括+,-,*,/,%等。三元条件操作符,包括?:两个操作符隔着三个操作数2,...原创 2019-12-03 22:03:40 · 461 阅读 · 0 评论 -
【C#本质论 五】方法和参数
前面四篇博客主要介绍了一些基本的操作内容,包含之前不了解的冷知识,以及一些新学到的C#较新版本的新知识,做个简单的小结:新知识:元组、tryParse(out可内联)、字符串插值、空合并操作符、空条件操作符、可空修饰符、switch的模式匹配冷知识:同类型单行声明赋值、字符串的不可变、字符串驻留技术、运算符优先级、预编译指令对于个人来说还是小有帮助的,至少再看到一些奇怪的类似??的符号不...原创 2019-12-05 22:02:37 · 441 阅读 · 0 评论 -
【C#本质论 六】类-从设计的角度去认知(封装)
从这一章开始,基本就脱离了结构化编程的思维,所以我的博客排版方式也会摒弃之前的节选方式,而是深入的去理解和描述内容,而这本书给我带来的惊喜就是:能够从设计的角度去帮助我理解为何类要如此设计,其设计缘由是什么,我觉得这一点远比单纯的告诉你怎么用更重要!感觉这一章的干货特别多,可以让我的面向对象思维上一个小小的台阶,这里将自己的学习笔记以及自己的理解整理分享出来,希望对大家都有所帮助,还有一点要说明下...原创 2019-12-08 18:24:18 · 536 阅读 · 0 评论 -
【C#本质论 七】类-从设计的角度去认知(继承)
上一篇文章简要概述了为什么要有类,面向对象模式的好处,并且详细说明了三大特性之一封装的重要性,这一篇文章我们就继续学习下面向对象三大特性之二的继承。本章的结构如下:宏观认知1,为什么要有继承?(爹给儿子的,有些儿子可以修改,有些不可以修改)上一篇博客我提到,面向对象编程的好处:可以不必从头创建新程序,而是用现有的一个模板去复制、去扩展,或添加更多,而且整个代码还非常有条理,可以控制访问权...原创 2019-12-12 09:50:11 · 571 阅读 · 0 评论 -
【C#本质论 八】类-从设计的角度去认知(多态)
其实称本篇为多态还是有些牵强,因为在类的继承中也是存在多态的,例如我们的重写机制,但可以设想这样一个场景:飞行这个动作,鸟可以飞行,飞机可以飞行,而飞机其实和鸟没有父子关系的,他们共同拥有的是行为:飞行。所以本篇博客着重介绍这一点:如何通过接口来处理行为一致(横向关系)而非一脉相承(纵向关系)的关系。本篇的结构如下:接口定义为什么要有接口?在介绍了类和抽象类(我的感觉就是抽象类属于类和接口的...原创 2019-12-16 21:51:20 · 476 阅读 · 0 评论 -
【C#本质论 九】值类型-结构之力
研一的时候学习C#,发现和自己学的Java不一样,为啥,C#里还有结构体这个东西,这个东西不多余么?今天学习了下结构体,发现,这东西确实挺多余的,没啥用,但是通过对结构体的学习,可以让我更好的理解值类型,C# 中的简单类型,如int、double、bool等都是结构类型。如果需要的话,甚至可以使用结构类型结合运算符运算重载,再为 C# 语言创建出一种新的值类型来。...原创 2019-12-22 12:40:39 · 505 阅读 · 0 评论 -
【C#本质论 十】合式类型(一)重写Object成员及操作符重载
第一次看到这章的标题有点懵,啥是合式类型,是一种值类型和引用类型之外的类型么,以前也没有听说过呀?其实并不是,合式类型其实说白了就是合适的类型,如何定义类型,如何操作类型才更好,如何创建合适的值类型和引用类型?这一章的内容比较杂,基本上类似于基础部分的终结之章,回顾下之前学习的章节,1-5章介绍了结构性编程的基础知识,6-10章来介绍面向对象的内容,加上接下来11章对异常处理的延伸学习后,基本...原创 2020-01-05 16:17:29 · 1015 阅读 · 0 评论 -
【C#本质论 十一】合式类型(二)程序集引用、XML注释、垃圾回收和资源清理
上一节介绍到了如何进行Object方法重写和操作符重载,本篇博客来接着介绍合式类型剩余的内容:程序集引用及命名空间定义其中一些相对简单的内容就不进行过多的介绍了,例如引用其他程序集,只需要注意三种引用方式:第一种方式是引用库项目文件,指出库的源代码在哪个项目中,并在两个项目之间建立依赖关系。编译好库之后才能编译引用了该库的程序。该依赖关系造成在编译程序时先编译库(如果还没有编译的话)项目...原创 2020-01-05 17:36:14 · 834 阅读 · 0 评论 -
【C#本质论 十二】异常处理
年前最后一篇技术博客了,由于近期的上线,自学进度严重滞后,年后还是得拾起来啊,闲言少叙,书归正传,经过艰苦的学习奋斗,终于来到了中级部分知识的最后一篇内容《异常处理》,其实之前学习Java的时候就了解过,在本质论系列的第五章也了解过,但是始终没有明确它的定位,它是干嘛的,什么时候用。综合日常的实战,我可以这么定义异常处理:异常处理通常和日志紧密配合,在可能出现问题的地方捕获系统抛出的异常然后打出对...原创 2020-01-21 11:41:43 · 932 阅读 · 0 评论 -
【深入理解CLR 序】技术分享
技术:兴趣所在随着论文初稿的完成,总算可以松一口气了,接下来想在毕业前趁自己时间还比较充裕加强一下自己的技术深度和广度,最近对三方面的技术比较感兴趣:1,首先就是CLR的底层运行,之前是学习java的从一开始的基础到后来的web,从基础到应用,觉得好像都涉及过一遍了,但是突然发现,自己好像从来没有了解过 “当我敲下这行代码的时候,底层发现了什么”这是个非常有趣的现象,就是你对...原创 2018-04-23 20:36:45 · 637 阅读 · 2 评论 -
【深入理解CLR 一】Net体系结构及CLR在何处
我这人的学习方式是:不管学习什么东西,总要先有个大局观,看全面了,然后再看看自己身处何处,依照所处位置制定计划,然后快速执行,勤记笔记,多多实操。废话不多说,先看看整个大局吧。对啦,一定要特别注意,我花费一整天的时间学习和写这篇文章的目的就是使你和我一样,能由表及里,由浅入深的理解CLR。本文的行文逻辑一定要注意:首先看到整个.Net大局,然后找到.Net FrameWork.找到.N...原创 2018-04-25 11:52:48 · 4973 阅读 · 0 评论 -
【深入理解CLR 二】CLR的执行模型
上一篇博文我讲到了如何在整个体系中定位CLR,以及CLR的一些作用,这篇博文是我在消化大佬书第一章之后的一些体会和感悟,为了之后技术分享方便,我会在一些结合我们日常开发的地方,用CLR解释一些现象,方便技术分享的时候大家理解的更加深刻。 博文的行文布局和介绍的部分如下规划首先我将介绍以下几个概念:源代码,托管模块,程序集其次我将介绍如下两个过程:Windows如何加载CLR,CL...原创 2018-05-03 21:23:02 · 6770 阅读 · 1 评论 -
【深入理解CLR 三】生成、打包、部署和管理应用程序及类型
上一篇博文https://blog.csdn.net/sinat_33087001/article/details/80185199讲了CLR的执行模型,从整体流程把控方面介绍了CLR的执行过程,对于一些细节没有进行说明,例如:类怎么被编译为模块文件的、模块文件又是怎么被合并为程序集等问题,还有诸如元数据是如何工作的、程序集的版本资源信息怎么看等操作。本篇博文可以说是对上一篇细节的补充说明吧。...原创 2018-05-17 10:31:56 · 1175 阅读 · 0 评论 -
【深入理解CLR 四】共享程序集和强命名程序集
上一篇博客我主要介绍了类型如何生成托管模块、托管模块如何链接成程序集等生成、打包、部署及管理等知识传送门https://blog.csdn.net/sinat_33087001/article/details/80347193,本篇博客介绍两种程序集:强命名程序集和弱命名程序集,阅读本篇博客前,我先抛出3个问题,如果你想了解问题的解决,那么这篇博客就对你胃口啦:1. CLR如何验证程序集的安全...原创 2018-05-29 19:24:50 · 1194 阅读 · 0 评论 -
【深入理解CLR 五】类型基础
上一篇的结束标志着第一部分:CLR基础的结束。上一篇主要介绍了强命名程序集,安全策略,运行时类型的解析(如何一步步找到程序集并进行加载)等内容。回顾一下第一部分:CLR的执行模型(JIT编译器如何工作)类型如何生成到托管模块以及托管模块如何合并为程序集强命名程序集、安全策略和运行时如何解析类型引用对了,恭喜微软在6月4号喜提GitHub,世界最大的闭源公司收购世界最大的开源社区,哈...原创 2018-06-07 17:32:54 · 1168 阅读 · 1 评论 -
【深入理解CLR 六】基元类型、引用类型和值类型
最近工作的事情比较忙,导致CLR很久没有更新了,恰巧周五听了涛涛的关于GC和内存管理的技术分享,想了下自己对CLR的学习得跟上,另外之前武哥推荐了一本书叫《码农翻身》,是一个IBM架构师写的,读了几页觉的非常有趣,身感学习笔记不能再这么干巴巴的记了,只是知识点概念的梳理,仅仅自己再看到时方便搞懂,但别人很难看懂,那既然是博客嘛,就是让大家看了会觉的很有趣,并且有点儿收获,这样才能起到知识分享的作用...原创 2018-07-22 20:55:28 · 1042 阅读 · 9 评论 -
【从Java到C#系列 一】VS2017的安装
资源由于我一贯喜欢用最新的,所以这次也要下载最新的使用呀哈哈哈,找了很多资源都没找到,要不就是下载起来有问题,安装不了,功夫不负有心人,终于让我找到了VS2017的可用版本,废话不多说,直接上下载链接https://pan.baidu.com/s/1c3GbzVy点击进入后点击该文件夹,里边有很多的压缩文件,但不需要全部下载只要选择其中之一即可,我就选择了第一个压缩文件,下载即可,原创 2017-10-27 14:08:47 · 25734 阅读 · 6 评论 -
【从Java到C#系列 二】从java到.net 基础
文章主要目标是让一个java程序员如何迅速适应.net的开发环境,在上一篇已经讲到了开发环境的安装,接下来计划使用两篇博客迅速上手C#,这是第一篇,主要从基础语法和一些简单操作里来体现,通过对比学习的方法,更加深刻的掌握.net的用法和规则,因为楼主即将转向.net开发,所以这里在对比阐述的时候会对c#重点分析。 学习内容来源于: 菜鸟教程http://www.runoob.com/cshar原创 2017-11-14 18:37:16 · 2099 阅读 · 1 评论 -
【从Java到C#系列 三】从java到.net 高级
上一篇基本比较了下两种语言的差异,其实可以看的出,二者大同小异,但C#提供了一些相比较而言差异有优势的地方,这一篇来进行分析,也是一个学习的过程,由于是初学者,如果理解有不到位的地方,欢迎指出错误,下一篇将介绍C#是最大优势,委托和事件,以及可能用到委托和事件的后续部分:匿名方法,不安全代码,多线程 学习教程来自于http://www.runoob.com/csharp/csharp-attri原创 2017-11-15 17:20:45 · 1144 阅读 · 1 评论 -
【从Java到C#系列 四】从java到.net 核心
本篇为三篇的最后一篇,来详细介绍C#里类似java里代理的功能的委托,也就是不需要继承关系,不再是oop,而是一种aop的模式。相对于java,C#的最大优势可能就是委托了,实现起来非常方便。委托定义C# 中的委托(Delegate)类似于 C 或 C++ 中函数的指针。委托(Delegate) 是存有对某个方法的引用的一种引用类型变量。引用可在运行时被改变。委托(Delegate)特别用于实现事件原创 2017-11-16 14:18:12 · 769 阅读 · 0 评论 -
【从Java到C#系列 五】C#里的MVC生命周期
接触项目之后,首先需要了解C#生命周期,和java类似,C#里也有一个类似struts.xml的配置文件,位于App_Start文件夹下的RouteConfig.cs 图片来自https://www.cnblogs.com/alunchen/p/6252846.html1,第一步就是注册路由,类似要在web.xml里配置struts的拦截器,在C#里我们也需要创建Global.asax文件,用原创 2017-11-21 15:22:49 · 887 阅读 · 0 评论 -
【C#编程最佳实践 一】单元测试实践
工作三周了,深深理解了学校和工作中处理问题的不同,从武哥这里得到了四字经验:最佳实践,于是产生了写一系列的博文,积累工作中的经验,希望以后少踩坑,本篇为开篇第一篇,涉及到我这两周真正有所实践的学习–单元测试。本系列最佳实践每一篇博文都长期更新,而且每一篇都会分两方面来讲:1,知识的通用性,2,知识在工作中的最佳实践。单元测试注意:本篇只针对C#,适用版本vs2015定义是指对软件中的最小可测试单元进原创 2017-12-01 18:16:02 · 1527 阅读 · 0 评论 -
【C#编程最佳实践 二】git操作实践
本篇用于总结工作中常用的git操作,持续更新总结工作中常用的git操作分支合并:1,将自己的git add .到缓存,然后git commit -m “单元测试” 到本地仓库 2,然后用自己的分支合并git merge dev_wuwei,然后再看一下 3,解决冲突,vim或者notpad 4,再次git add .到缓存,然后git commit -m “合并冲突” 到本地仓库撤销本地操原创 2017-12-01 19:14:15 · 1162 阅读 · 0 评论 -
【C#编程最佳实践 三】接口使用实践
目前使用到的接口使用方法大概就以下这两种,之后在持续更新,第一种就是使用工厂,第二种就是字典类。接下来详细介绍这两种方法,用好了就可以说把多态玩儿溜了。原创 2017-12-15 17:33:40 · 544 阅读 · 0 评论 -
【C#编程最佳实践 四】XML配置文件编写与读取实践
通过项目获取的新技能,之后写xml配置应该没什么问题,当然xml文件的使用形式多种多样,之后在持续更新。配置文件编写实践配置文件一般用xml来写,具体关于xml文件的特性见以下这篇引用的博客,很详细了。 xml文件的使用http://blog.csdn.net/wuya_meiya/article/details/50989600这里我想说一下我学到的设计xml文件编写<?xml versio原创 2017-12-15 18:44:48 · 783 阅读 · 0 评论 -
【C#编程最佳实践 五】项目与代码流程实践
本篇博客来源于目前编写的一个小插件,简单来说,就是某个库里的某张表里的某条数据被迁移到该表里另一个位置,通过传入两个不同的id来校验迁移是否成功。在这个过程中获取了不少实践知识,概括起来集中在以下两个方面:第一个来自于实现流程,到底该怎样设计才能实现功能。第二个来自于代码:如何调用合适的实现方法(一种是字典,一种是工厂类),如何封装合适的替代类。第三个来自于配置文件:如何编写合适的xml文件,并且解原创 2017-12-15 19:13:24 · 1143 阅读 · 0 评论 -
【C#编程最佳实践 六】数据库操作相关实践
本篇条目和详细操作均会发生调整,凡是和数据库有关的实践都将在这里记录,本篇使用的数据库为sqlServer。原创 2017-12-13 16:10:00 · 624 阅读 · 0 评论 -
【C#编程最佳实践 七】代码书写规范实践
以下规范都是个人书写习惯,便于阅读总结的个人规范,对于每个人可以有自己的理解。终极目标就是消除警告呀哈哈。布局规范对于项目的总体规范,建议分为以下几部分:1,对外提供服务的文件。2,配置文件和配置文件解析类(如果有)。3,接口文件夹(接口和实现类)。4单元测试文件夹。5,实体类文件夹。命名规范1,接口的命名:例如IConditionKeyBuilder,以I开头,方式+名词 2,类的命名:驼峰命名原创 2017-12-15 17:31:42 · 848 阅读 · 0 评论 -
【C#编程最佳实践 八】MVC流程实践
近期参与了工作台开发任务,亲身实践了mvc一个流程:(Model层)创建数据表—(Model层)创建Entity实体类—(Model层)创建数据表和实体的映射关系或调用通用的映射关系—(Model层)创建存储过程—(Model层)创建Dao层代码—(Model层)创建Provider层代码—(Controller层)在控制层写业务逻辑接口调用Model的provider,并返回给前端(View)—(原创 2017-12-22 11:27:49 · 1021 阅读 · 0 评论 -
【C#编程最佳实践 九】DFS分布式文件系统
最近在项目中使用到了DFS分布式文件系统,这里搜集一些资料了解一下这个系统以及如何在我的项目里使用。DFS定义Microsoft文件分布系统 (Dfs) 是一个网络服务器组件,它能够使你更容易地在网络上查询和管理数据。分布式文件系统是将分布于不同电脑上的文件组合为单一的名称空间,并使得在网络上建立一个单一的、层次化多重文件服务器和服务器共享的工作更为方便的途径。DFS优势分原创 2018-01-17 18:00:52 · 1849 阅读 · 3 评论 -
【C#编程最佳实践 十】控件使用及Ajax通信
控件隐藏控件前端显示,选择框 class="form-group"> class="col-sm-3 control-label">API类型 class="col-sm-8"> class="apiType" type="radio" name="apiType" value="0" title="基础数据" />基础数据 class="apiType"原创 2018-01-17 19:14:29 · 382 阅读 · 0 评论 -
【C#编程最佳实践 十一】降低圈复杂度最佳实践
什么是圈复杂度圈复杂度(Cyclomatic complexity)是一种代码复杂度的衡量标准,圈复杂度用来衡量一个模块判定结构的复杂程度,数量上表现为独立线性路径条数,即合理的预防错误所需测试的最少路径条数。圈复杂度大说明程序代码可能质量低且难于测试和维护,根据经验,程序的可能错误和高的圈复杂度有着很大关系。一般指代码中的分支数量,比如有一个if分支,代码复杂度就加1,如果if中有“||...原创 2018-03-01 19:25:53 · 1108 阅读 · 0 评论 -
【C#编程最佳实践 十二】前后端分离的思考
最近做的项目武哥用了前后端分离,在这里我做个自我学习吧,从网上搜集一些资料再结合下自己实践过程中遇到的记录下来。持续更新 Web系统开发构架再思考-前后端的完全分离https://www.cnblogs.com/zergcom/p/4439383.html 对于web开发前后端分离的思考 http://blog.csdn.net/chen_victor/article/details...原创 2018-03-01 20:20:20 · 5143 阅读 · 1 评论