摘要: 有基础的开发者都应该很明白,对象是一个引用类型,例如: object b=new object(); object a=b; 那么a指向的是b的地址,这样在有些时候就会造成如果修改a的值,那么b的值也会跟随着改变(a和b是同一个引用内存地址)。 我们想要a和b都是各自互不影响的,那么只能是完全地新建 阅读全文
posted @ 2017-06-16 08:37 ppkkqq 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 当下.Net Core项目可是如雨后春笋一般发展起来,作为.Net大军中的一员,我热忱地拥抱了.Net Core并且积极使用其进行业务的开发,我们先介绍下.Net Core项目下实现文件上传下载接口。 一、开发环境 毋庸置疑,宇宙第一IDE VisualStudio 2017 二、项目结构 File 阅读全文
posted @ 2017-06-16 08:35 ppkkqq 阅读(455) 评论(0) 推荐(0) 编辑
摘要: 1. 引言 事件总线这个概念对你来说可能很陌生,但提到观察者(发布-订阅)模式,你也许就很熟悉。事件总线是对发布-订阅模式的一种实现。它是一种集中式事件处理机制,允许不同的组件之间进行彼此通信而又不需要相互依赖,达到一种解耦的目的。 我们来看看事件总线的处理流程: 了解了事件总线的基本概念和处理流程 阅读全文
posted @ 2017-06-12 13:24 ppkkqq 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 其实就是协变的应用,通过把对象向上转型为基类或接口类型,对它调用成员,可实现多态性,即运行时调用的是对应对象的实现版本成员。这两种方式的区别: 继承抽象类:会用掉唯一1次的继承机会,但可以继承任何成员(包括字段),自由度高 实现接口:必须实现所有成员,不能包含字段,但可以实现多个接口 抽象类可以提供 阅读全文
posted @ 2017-05-22 10:40 ppkkqq 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 简介: 这是一个基础组件,是一个统一的配置模型,配置可以来源于配置文件(json文件,xml文件,ini文件),内存对象,命令行参数,系统的环境变量又或者是你自己扩展的配置源,该组件将各个配置源的数据按统一的格式(IDictionary<string, string> Data)进行加载,进而对外提 阅读全文
posted @ 2017-04-19 08:37 ppkkqq 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 简介: 作为基础组件,日志组件被其他组件和中间件所使用,它提供了一个统一的编程模型,即不需要知道日志最终记录到哪里去,只需要调用它即可。 使用方法很简单,通过依赖注入ILogFactory(CreateLogger方法)或ILogger<T>对象,获取一个ILogger对象,然后通过ILogger的 阅读全文
posted @ 2017-04-19 08:34 ppkkqq 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 本篇故事的起因是携程旅游网的一位技术经理,豪言壮举的扬言要通过他的超高智商,完美碾压爬虫开发人员,作为一个业余的爬虫开发爱好者,这样的言论我当然不能置之不理。因此就诞生了上一篇基础爬虫以及这一篇高级爬虫的开发教程。 有人评论我上一篇的简单爬虫:代码太过简单以至于弱爆了,真是被这群有文化的孩子给雷到了 阅读全文
posted @ 2017-04-14 09:42 ppkkqq 阅读(3456) 评论(1) 推荐(1) 编辑
摘要: 前两天朋友发给我了一篇文章,是携程网反爬虫组的技术经理写的,大概讲的是如何用他的超高智商通过(挑衅、怜悯、嘲讽、猥琐)的方式来完美碾压爬虫开发者。今天我就先带大家开发一个最简单低端的爬虫,突破携程网超高智商的反爬虫技术。 一、什么是爬虫? 很多人说我们这些搞软件的人,总喜欢把虚拟世界里的事物跟现实中 阅读全文
posted @ 2017-04-14 09:41 ppkkqq 阅读(843) 评论(0) 推荐(0) 编辑
摘要: 1. out 变量(out variables) 以前我们使用out变量必须在使用前进行声明,C# 7.0 给我们提供了一种更简洁的语法 “使用时进行内联声明” 。如下所示: var input = ReadLine(); if (int.TryParse(input, out var result 阅读全文
posted @ 2017-04-14 09:40 ppkkqq 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 1. 只读自动属性(Read-only auto-properties) C# 6之前我们构建只读自动属性: 原理解析:就是编译器在生成set访问器时,它的修饰符是private,由上可知所谓的只读只是针对类外部,在类内部还是可以随意修改属性值的。 C# 6中提供了真正的只读自动属性,写法如下: 原 阅读全文
posted @ 2017-04-14 09:39 ppkkqq 阅读(257) 评论(0) 推荐(0) 编辑