会员
周边
众包
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
也难熬
博客园
首页
新随笔
联系
订阅
管理
2019年9月5日
依赖倒置原则(DIP)、控制反转(IoC)、依赖注入(DI)(C#)
摘要: 理解: 依赖倒置原则(DIP)主程序要依赖于抽象接口,不要依赖于具体实现。高层模块不应该依赖底层模块,两个都应该以来抽象。抽象不应该依赖细节,细节应该依赖抽象。(具体看我上一篇贴子) 依赖倒置原则是六大设计原则中的一种,它的大致意思是所有模块都应该依赖于抽象,而不是直接依赖于另一个模块。依赖倒置原则
阅读全文
posted @ 2019-09-05 15:48 也难熬
阅读(3229)
评论(4)
推荐(10)
2019年9月1日
六大设计原则(C#)
摘要: 为什么要有设计原则,我觉得一张图片就可以解释这一切 一、单一职责原则(SRP) 对于一个类而言,应该只有一个发生变化的原因。(单一职责不仅仅是指类) 如果一个模块需要修改,它肯定是有原因的,除此原因之外,如果遇到了其他情况,还需要对此模块做出修改的话,那么就说这个模块就兼具多个职责。举个栗子: 此时
阅读全文
posted @ 2019-09-01 11:12 也难熬
阅读(5028)
评论(13)
推荐(27)
2019年8月28日
C#简单爬取数据(.NET使用HTML解析器NSoup和正则两种方式匹配数据)
摘要: 一、获取数据 想弄一个数据库,由于需要一些人名,所以就去百度一下,然后发现了360图书馆中有很多人名 然后就像去复制一下,发现复制不了,需要登陆 此时f12查看源码是可以复制的,不过就算可以复制想要插入数据也是很麻烦的。既然复制走不通,于是我抱着探索知识的精神,打开了Visual Studio 首先
阅读全文
posted @ 2019-08-28 15:06 也难熬
阅读(7168)
评论(14)
推荐(15)
2019年8月26日
简单架构:反射实现抽象工厂+IDAL接口完全独立DAL
摘要: 一、普通架构中存在的问题 StudentDB数据库,包含一张StudentInfoTB表,结构如下: 先来看一下普通的架构的问题所在: 调用关系: dal层代码只是通过SqlHelper简单的操作一下数据库,就不展示了。 StudentInfo的bll层代码,实例化了一个dal层对象,并且每个方法返
阅读全文
posted @ 2019-08-26 17:58 也难熬
阅读(947)
评论(2)
推荐(4)
2019年8月24日
C#高级语法之泛型、泛型约束,类型安全、逆变和协变(思想原理)
摘要: 一、为什么使用泛型? 泛型其实就是一个不确定的类型,可以用在类和方法上,泛型在声明期间没有明确的定义类型,编译完成之后会生成一个占位符,只有在调用者调用时,传入指定的类型,才会用确切的类型将占位符替换掉。 首先我们要明白,泛型是泛型,集合是集合,泛型集合就是带泛型的集合。下面我们来模仿这List集合
阅读全文
posted @ 2019-08-24 12:12 也难熬
阅读(2378)
评论(8)
推荐(17)
2019年8月21日
委托和lambda表达式,Action和Func
摘要: 1、为什么要用委托 我们为什么要有委托?任何东西存在即合理,不合理的也会被时间淘汰掉,委托既然存在肯定有存在的必要,我们来看一下什么时候可以用到委托。 接下来我们有个需求,就是调用一个方法,取出1-1000个数字中所有是10的倍数的数字 这个很好写,但是如果有一天,我们的需求变了,想取出1-1000
阅读全文
posted @ 2019-08-21 15:44 也难熬
阅读(3353)
评论(6)
推荐(9)
2019年8月19日
.NET中使用WebService,以及和一般处理程序、类库的区别
摘要: 首先我们来看一下如何创建Web Service 首先在解决方案中新建项,选择ASP.NETWeb应用程序 然后选择一个空的项目就可以,单击确定 项目建完之后,在项目上右键-->添加-->新建项,选择 Web服务(ASMX),添加 如果想要添加新的函数,必须在函数上方打上WebMethod标签 接下来
阅读全文
posted @ 2019-08-19 18:55 也难熬
阅读(1938)
评论(6)
推荐(2)
2019年8月17日
C#原型模式(深拷贝、浅拷贝)
摘要: 原型模式就是用于创建重复的对象,当想要创建一个新的对象但是开销比较大或者想将对象的当前状态保存下来的时候,我们就可以使用原型模式。 创建原型 接下来创建一个Peron类,继承Base,并且实现两个复制方法 Main方法中调用,首先我们每次都创建新的Person对象 运行结果: 可见如果创建对象如果开
阅读全文
posted @ 2019-08-17 14:44 也难熬
阅读(1080)
评论(0)
推荐(4)
2019年8月11日
Thread、ThreadPool、Task、Parallel的基本用法、区别以及弊端
摘要: 多线程的操作在程序中也是比较常见的,比如开启一个线程执行一些比较耗时的操作(IO操作),而主线程继续执行当前操作,不会造成主线程阻塞。线程又分为前台线程和后台线程,区别是:整个程序必须要运行完前台线程才会退出,而后台线程会在程序退出的时候结束掉。Thread默认创建的是前台线程,而ThreadPoo
阅读全文
posted @ 2019-08-11 21:19 也难熬
阅读(7659)
评论(8)
推荐(10)
2019年8月10日
使用抽象工厂反射获取不到Dal层对象,未能加载文件或程序集......
摘要: Put aside the fog and see the essence 解决问题之前,要明白问题为什么会出现 如果只想单纯的解决这个问题的话,直接把错误复制然后百度就会出现很多很多解决方案 如果你想明白为什么会出现这个错误 1、首先了解反射的机制 任何类库编译完成之后都会生成.dll文件,反射就
阅读全文
posted @ 2019-08-10 11:48 也难熬
阅读(539)
评论(1)
推荐(3)
C#使用代理IP发送请求
摘要: https://www.cnblogs.com/benbenfishfish/p/5830149.html 获取可代理的IP https://www.cnblogs.com/ShalenChe/p/5405013.html 设置IP发送请求
阅读全文
posted @ 2019-08-10 09:44 也难熬
阅读(2256)
评论(0)
推荐(2)
公告