技术类别
文章平均质量分 71
疯狂的犹太人
我很疯狂
展开
-
C#设计模式(1)——单例模式
一、引言最近在设计模式的一些内容,主要的参考书籍是《Head First 设计模式》,同时在学习过程中也查看了很多博客园中关于设计模式的一些文章的,在这里记录下我的一些学习笔记,一是为了帮助我更深入地理解设计模式,二同时可以给一些初学设计模式的朋友一些参考。首先我介绍的是设计模式中比较简单的一个模式——单例模式(因为这里只牵涉到一个类)二、单例模式的介绍说到单例模式,大家第转载 2017-08-24 16:14:16 · 326 阅读 · 0 评论 -
C#-using的另一种用法
using语句 using 语句允许程序员指定使用资源的对象应当何时释放资源。using 语句中使用的对象必须实现 IDisposable 接口。此接口提供了 Dispose 方法,该方法将释放此对象的资源。 ①可以在 using 语句之中声明对象。 Font font2 = new Font("Arial", 10.0f); using (font2)原创 2017-08-28 17:16:28 · 439 阅读 · 0 评论 -
深入理解string和如何高效地使用string
无论你所使用的是哪种编程语言,我们都不得不承认这样一个共识:string是我们使用最为频繁的一种对象。但是string的常用性并不意味着它的简单性,而且我认为,正是由于string的频繁使用才会促使其设计人员在string的设计上花大量的功夫。所以正是这种你天天见面的string,蕴含了很多精妙的设计思想。一个月以前我写了一篇讨论字符串的驻留(string interning)的文章,我今转载 2017-08-04 17:11:02 · 423 阅读 · 0 评论 -
C#系列之:类中的静态变量的执行数序(补充)
static静态变量的实例与分析 class class1 { static int i = getNum(); int j = getNum(); static int num = 1; static int getNum() { return num;原创 2017-08-04 10:15:43 · 323 阅读 · 0 评论 -
c# 对象的深拷备
C# 引用类型对象在拷备时,一般有浅拷备与深拷备,浅拷备指向的是同一对象的引用地址,一个对象的修改必然会影响另一个对象,而深拷备是直接拷备对象的内容,而不是引用,拷备后的对象拥有新的引用原创 2017-07-26 15:50:46 · 232 阅读 · 0 评论 -
C#系列之:类中的静态变量的执行数序
今天对静态变量的销毁作了下研究,看到网上大家各有各的说法,但最终的一致结果是:静态变量是伴随程序的消亡而销毁,就像全局变量一样,随后看到了有人在执行存在静态变量的类中的一些计算,如下:Bus类: public class Bus { public static int datay = Trunk.data + 1; static Bus原创 2017-08-03 17:55:26 · 465 阅读 · 0 评论 -
NHibernate 集合映射基础(第四篇) - 一对一、 一对多、多对多小示例
映射文件,用于告诉NHibernate数据库里的表、列于.Net程序中的类的关系。因此映射文件的配置非常重要。一、一对一 NHibernate一对一关系的配置方式使用配置节点。 当我们两个表拥有相同的主键字段,主键值相同的需要关联在一起。比较典型的一个例子是,一个对象的属性太多,常用的和不常用的分开存放。例如一个文章表,我们将文章内容字段,提取出来作为一个单独的字段,因转载 2017-07-26 11:30:40 · 425 阅读 · 0 评论 -
你真的了解软件开发的本质吗?
摘要:我们总是喜欢用自己的经历来定义软件是什么以及判断标准,但如果这种经历来自完全不同的两个领域,并且互相矛盾,那么就有可能让大家吵来吵去……是的,各位在忙于解决具体问题时,谁还会想到谈谈软件开发的本质?看过我之前文章的人,可能会感觉到我对不加思考的所谓分享是持鄙视态度的,不管这种分享被冠以干货,经验或者随便什么名字。不是说这类分享没价值,而是说越是这类分享越适合具体问题,转载 2017-07-26 10:05:21 · 1919 阅读 · 0 评论 -
引用Aspose.Words,操作Word模板创建表格
最近项目开发涉及到了操作Word模板,先前用Office的动态库编码,完成后,不熟客户环境时候,发现出现各种问题,需要安装office,然后报出各种注册表问题,麻烦的太太,于是改用另一种方法,引进Aspose.Words.dll后,就直接操作word模板,画表格,非常方便,于是把方法记录下来,分享给大家,希望大家能在以后的工作中避开不必要的选择时间浪费,共进共勉:原创 2017-07-25 17:04:50 · 7153 阅读 · 1 评论 -
c#静态方法和实例方法的内存分配问题
方法 (Method) 是一种类型定义,所以,它被存放在 Type Object 上,Type Object 是一个被分配在托管堆上的特殊类型,在同一个 AppDomain 中,每一个类型,都对应一个全局的 Type Object。每个引用类型的实例,都包含一个指向它的直接类型的 Type Object 的指针,每个 Type Object 也存在类似的指针,用来标识它的直接父类型的 Type O转载 2017-08-02 11:03:23 · 3577 阅读 · 0 评论 -
C# 基础知识系列]专题六:.net WinForm 控件的事件委托剖析
首先从controlInstance.Click事件开始. 用Reflector反编译System.Windows.Forms.Control类可以看到对Click事件的定义: [System.Windows.Forms.SRCategory("CatAction"), System.Windows.Forms.SRDescription("ControlOnClickD转载 2017-06-28 13:45:15 · 954 阅读 · 0 评论 -
C# 基础知识系列]专题五:当点击按钮时触发Click事件背后发生的事情
引言: 当我们在点击窗口中的Button控件VS会帮我们自动生成一些代码,我们只需要在Click方法中写一些自己的代码就可以实现触发Click事件后我们Click方法中代码就会执行,然而我一直有一个疑问的——既然上一专题中说事件是一个多播委托,然而自动生成的代码中只有事件的实例化,却没有看到事件的调用,那既然没有事件调用的代码,那封装的Click为什么会执行呢?一、点击按钮时触发C转载 2017-06-27 17:42:18 · 934 阅读 · 0 评论 -
C# 设计模式-工场方法模式
工厂方法模式简介:工厂方法(Factory Method)模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。过程方法模式结构:抽象工厂角色:是工厂方法模式的转载 2017-06-14 17:41:23 · 413 阅读 · 0 评论 -
c#简单的自定义控件
今天抽了点时间,尝试了做了个用户自定义控件,自定义控件分3类:符合控件,扩展控件,自定义控件;觉得明白了一些原理,赶紧记录下来,巩固下:其实就是做了个简单按钮,让她加上图片;1:首先在vs2015上创建了WinForm项目,分别创建了OK按钮和Cancel按钮;2:创建的UserControl控件继承Button;3:在控件的InitializeComponent方法中添加如下原创 2017-06-27 16:19:38 · 2649 阅读 · 0 评论 -
C#设计模式(2)——简单工厂模式
一、引言 这个系列也是自己对设计模式的一些学习笔记,希望对一些初学设计模式的人有所帮助的,在上一个专题中介绍了单例模式,在这个专题中继续为大家介绍一个比较容易理解的模式——简单工厂模式。二、简单工厂模式的介绍 说到简单工厂,自然的第一个疑问当然就是什么是简单工厂模式了? 在现实生活中工厂是负责生产产品的,同样在设计模式中,简单工厂模式我们也可以理解为负责生产对象的一个类转载 2017-08-24 16:16:29 · 244 阅读 · 0 评论 -
C#设计模式(3)——工厂方法模式
一、引言 在简单工厂模式中讲到简单工厂模式的缺点,有一点是——简单工厂模式系统难以扩展,一旦添加新产品就不得不修改简单工厂方法,这样就会造成简单工厂的实现逻辑过于复杂,然而本专题介绍的工厂方法模式可以解决简单工厂模式中存在的这个问题,下面就具体看看工厂模式是如何解决该问题的。二、工厂方法模式的实现 工厂方法模式之所以可以解决简单工厂的模式,是因为它的实现把具体产品的转载 2017-08-24 16:17:43 · 303 阅读 · 0 评论 -
IoC实践--ASP.NET MVC5 采用Unity依赖注入Controller详解
我之前写的文章一般都有通过Autofac来实现IoC,这次我来换一个框架,体会一下ASP.NET mvc5 采用Unity依赖注入Controller。此之前说说一下Unity框架。Unity是微软Patterns & Practices团队所开发的一个轻量级的,并且可扩展的依赖注入(Dependency Injection)容器,它支持常用的三种依赖注入方式:构造器注入(Construc...转载 2018-03-06 17:22:50 · 1274 阅读 · 0 评论 -
ASP.Net请求处理机制初步探索之旅(4):WebForm页面生命周期
转自:http://blog.jobbole.com/85030/1:ASP.Net Page的两个重要部分在前面对于请求处理管道的介绍中,我们已经了解了一个ASP.NET WebForm页面请求事件的整体流程。那么,在其中一个最重要的部分就是ASP.NET Page页面,但是我们并没有对其进行详细讨论。因此,我们在此深入地了解一下ASP.NET页面事件。每一个ASP.NET Page页都有2个部...翻译 2018-03-02 10:45:12 · 654 阅读 · 0 评论 -
Asp.net Page事件执行一览
原创 2018-03-02 10:29:36 · 805 阅读 · 0 评论 -
ASP.NET ViewState详解
作者:Infinities Loop概述ViewState是一个被误解很深的动物了。我希望通过此文章来澄清人们对ViewState的一些错误认识。为了达到这个目的,我决定从头到尾详细的描述一下整个ViewState的工作机制,其中我会同时用一些例子说明我文章中的观点,结论。比如我会用静态控件(declared controls)和动态控件(dynamic controls)两个方面来说明同一个问题...转载 2018-02-08 11:53:27 · 373 阅读 · 0 评论 -
聚集索引和非聚集索引的区别有哪些
SQL SERVER提供了两种索引:聚集索引和非聚集索引。其中聚集索引表示表中存储的数据按照索引的顺序存储,检索效率比非聚集索引高,但对数据更新影响较大。非聚集索引表示数据存储在一个地方,索引存储在另一个地方,索引带有指针指向数据的存储位置,非聚集索引检索效率比聚集索引低,但对数据更新影响较小。方法/步骤1 聚集索引:该索引中键值的逻辑顺序决定了表中相应行的物理顺序。 聚集索引确定...转载 2018-02-27 17:28:53 · 581 阅读 · 1 评论 -
SQL Server :While循环替代游标,性能提升
在编写SQL批处理或存储过程代码的过程中,经常会碰到有些业务逻辑的处理,需要对满足条件的数据记录逐行进行处理,这个时候,大家首先想到的方案大部分是用“游标”进行处理。 举个例子,在订单管理系统中,客服需要对订单日期为2012-09-01的销售订单进行某个批量操作,比如批量发货操作,后台业务逻辑处理时,需要对满足条件的订单记录进行逐行处理。 我首先是采用“游标”编写的业务逻辑存储转载 2018-01-10 16:37:38 · 8984 阅读 · 3 评论 -
ASP.Net请求处理机制初步探索之旅 - Part 3 管道
开篇:上一篇我们了解了一个ASP.Net页面请求的核心处理入口,它经历了三个重要的入口,分别是:ISAPIRuntime.ProcessRequest()、HttpRuntime.ProcessRequest()以及HttpApplication.Init()。其中,在HttpApplication的Init()方法中触发了请求处理管道事件的执行,本篇我们就来看看所谓的请求处理转载 2018-01-25 17:35:28 · 290 阅读 · 0 评论 -
ASP.NET MVC 3 Model【通过一简单实例一步一步的介绍】
今天主要讲Model的两个方面:1. ASP.Net MVC 3 Model 简介 通过一简单的事例一步一步的介绍2. ASP.Net MVC 3 Model 的一些验证 MVC 中 Model 主要负责维持数据状态,将数据从数据存储器中检索并传递给控制器,客户端传送过来的数据通过处理后再传回数据存储系统中。是MVC中较为重要的一层。这里为什么说是数据存储器而不是转载 2018-01-16 13:32:05 · 1364 阅读 · 1 评论 -
SQL Server索引 (原理、存储)聚集索引、非聚集索引、堆
一、存储结构 文章转载自:https://www.cnblogs.com/kissdodog/archive/2013/06/12/3132380.html 在SQL Server中,有许多不同的可用排列规则选项。 二进制:按字符的数字表示形式排序(ASCII码中,用数字32表示空格,用68表示字母"D")。因为所有内容都表示为数字,所以处理起来速度最快,遗憾的是,它并不总转载 2017-12-28 17:52:00 · 2302 阅读 · 0 评论 -
js的单线程和异步
前言(转载地址:https://www.cnblogs.com/woodyblog/p/6061671.html)说到js的单线程(single threaded)和异步(asynchronous),很多同学不禁会想,这不是自相矛盾么?其实,单线程和异步确实不能同时成为一个语言的特性。js选择了成为单线程的语言,所以它本身不可能是异步的,但js的宿主环境(比如浏览器,Node)是多线程的,转载 2017-12-26 15:27:19 · 213 阅读 · 0 评论 -
.NET中栈和堆的比较
.NET中栈和堆的比较 #1原文出处:http://www.c-sharpcorner.com/UploadFile/rmcochran/csharp_memory01122006130034PM/csharp_memory.aspxhttp://www.cnblogs.com/c2303191/articles/1065675.html尽管在.NET framewor转载 2017-12-25 13:30:14 · 726 阅读 · 0 评论 -
SQL SERVER 中is null 和 is not null 将会导致索引失效吗?
http://www.cnblogs.com/kerrycode/p/4550673.html转载 2017-09-07 17:27:32 · 4327 阅读 · 0 评论 -
SQL中IS NOT NULL与!=NULL的区别
平时经常会遇到这两种写法:IS NOT NULL与!=NULL。也经常会遇到数据库有符合条件!=NULL的数据,但是返回为空集合。实际上,是由于对二者使用区别理解不透彻。默认情况下,推荐使用 IS NOT NULL去做条件判断,因为SQL默认情况下对WHERE XX!= Null的判断会永远返回0行,却不会提示语法错误。这是为什么呢?SQL Server文档中对Null值的转载 2017-09-07 17:05:41 · 8441 阅读 · 0 评论 -
C#设计模式(4)——观察者模式(Observer Pattern)
一、引言 在现实生活中,处处可见观察者模式,例如,微信中的订阅号,订阅博客和QQ微博中关注好友,这些都属于观察者模式的应用。在这一章将分享我对观察者模式的理解,废话不多说了,直接进入今天的主题。二、 观察者模式的介绍2.1 观察者模式的定义 从生活中的例子可以看出,只要对订阅号进行关注的客户端,如果订阅号有什么更新,就会直接推送给订阅了的用户。从中,我们就可以转载 2017-08-24 16:19:40 · 413 阅读 · 1 评论 -
Knockout应用开发指南 第二章:监控属性(Observables)
关于Knockout的3个重要概念(Observables,DependentObservables,ObservableArray),本人无法准确表达它的准确含义,所以暂定翻译为(监控属性、依赖监控属性和监控数组),如果有好的建议请指正,多谢。1 创建带有监控属性的view modelObservablesKnockout是在下面三个核心功能是建立起来的:转载 2017-06-09 10:32:38 · 458 阅读 · 1 评论 -
$.getJSON异步请求和同步请求
ajax同步和异步执行的做法;$.ajaxSettings.async = false(同步);$.ajaxSettings.async = true(异步)原创 2017-06-08 17:28:35 · 528 阅读 · 0 评论 -
递归算法的原理
递归算法:顾名思义,递和归;其实际也是根据栈的原理,后进先出,保证函数的返回值正确;就拿斐波那契数列进行举例说明:斐波那契数列算法,如:1,1,2,3,5,8,13,21…… ,可以看到这里面的规律吧.就是每一项是前面相邻两项之和.求第N项。 递归法: public static int Fibonacci(in原创 2017-06-19 17:17:15 · 5794 阅读 · 0 评论 -
c#的System.ICloneable接口说明
System.ICloneable接口支持克隆,即用与现有实例相同的值创建类的新实例。msdn上的解释很简单,主要就是clone方法的实行,介绍深拷贝和浅拷贝,搞的很糊涂,那么到底是什么意思呢?看看下面的原理可能就会明白很多了。引自http://www.cnblogs.com/anderslly/archive/2007/04/08/implementingcloneabletype.html转载 2013-11-28 16:13:50 · 1122 阅读 · 1 评论 -
C#委托和多线程
很多时候写windows程序都需要结合多线程,在.net中用如下得代码来创建并启动一个新的线程。public void ThreadProc();Thread thread = new Thread( new ThreadStart( ThreadProc ) );thread.IsBackground = true;thread.Start();但是很多时候,在新的线程中,我转载 2013-11-14 16:46:03 · 665 阅读 · 0 评论 -
在C#中int,int.parse()和Convert.toInt32()的区别
1.int.Pase()只能转换string类型为int,而Convert.ToInt32是把object类型转换成int类型;2.int属于强制类型转换,对转换的类型不做四舍五入;而Convert.ToInt32(),如果转化的参数为中间数字的时候,则返回二者中的偶数:例如:Convert.ToInt32("4.5"),转换的结果为“4”;Convert.ToInt32("5.5"),转原创 2013-11-13 14:56:07 · 878 阅读 · 0 评论 -
C#中关于托管资源和非托管资源
托管资源指的是.NET可以自动进行回收的资源,主要是指托管堆上分配的内存资源。托管资源的回收工作是不需要人工干预的,有.NET运行库在合适调用垃圾回收器进行回收。 非托管资源指的是.NET不知道如何回收的资源,最常见的一类非托管资源是包装操作系统资源的对象,例如文件,窗口,网络连接,数据库连接,画刷,图标等。这类资源,转载 2013-11-25 17:44:50 · 702 阅读 · 0 评论 -
C#中string类型赋值问题
大家都知道,C#中的string是一个引用类型,String对象是存放在堆上,而不是堆栈上的,因此,当把一个字符串变量赋给另一个字符串时,会得到对内存中同一个字符串的两个引用。但是大家有没有想过,为什么修改其中一个字符串,另外一个不受影响呢? 原来,当我们把一个字符串变量赋给另一个字符串时,就会创建一个全新的String对象,就是说这个时候就会有两个对象,比如:class Str转载 2013-10-31 17:08:40 · 8401 阅读 · 0 评论 -
C#知识点总结系列:1、C#中Hashtable、Dictionary详解以及写入和读取对比
在本文中将从基础角度讲解HashTable、Dictionary的构造和通过程序进行插入读取对比。 一:HashTable 1.HashTable是一种散列表,他内部维护很多对Key-Value键值对,其还有一个类似索引的值叫做散列值(HashCode),它是根据GetHashCode方法对Key通过一定算法获取得到的,所有的查找操作定位操作都是基于散列值来实现找到对应的Key和V转载 2013-10-30 17:49:36 · 879 阅读 · 0 评论 -
关于Oracle将小于1的数字to_char后丢掉0的解决办法
SQL代码如下:select rtrim(to_char(0.11, 'fm9990.99'), '.') from dual;其中0.11为需要to_char的数字fm去掉字符串前面的空格9990.99表示4位数字,千位百位十位无数字时不显示[标识9],个位数[标识0]永久显示,小数没有不显示[标识9]如果数字位数超过4位则返回结果为####[符号#的个数由原字符串长转载 2013-10-30 13:25:35 · 5129 阅读 · 0 评论