摘要: 冒泡排序算法简介 冒泡排序(BubbleSort)算法:比较相邻元素的大小,如果第一个元素大于第二个元素,则交换它们的位置,然后第二个元素与第三个元素比较,直到所有的元素比较完,冒泡出最小的元素。假设我们有n各元素,那么我们就要进行 n-1 次冒泡,n-1 个最小的元素已经冒泡出来,因此,最后剩下的一个元素也就处于它应当处于的位置。 本篇文章主要是对冒泡排序进行优化,使其避免不必要的比较,以及泛型的实现,共分四个版本。先来看一张直观的图:第一版 static int FirstVersionBubbleSort(int[] array){ int count = array.Len... 阅读全文
posted @ 2013-11-25 22:36 KANLEI 阅读(469) 评论(0) 推荐(0) 编辑
摘要: ADO.NET数据提供程序简介 本文从构建一个简单的工厂模式创建适合的数据提供程序(DataProvider)开始,到使用 ADO.NET 为我们提供的DbProviderFactories 来创建一个适合的数据提供程序结束。并补充了去除简化工厂模式中的 case 语句,使用反射的方式简化工厂模式。自定义工厂模型 首先,假设我们要提供访问以下数据库,如:Sqlserver、MySQL、Oracle、OleDb、… 。接着,我们可以定义一个方法根据传入参数的不同,创建不同的连接对象。private static IDbConnection GetConnection(string provide 阅读全文
posted @ 2013-11-17 15:07 KANLEI 阅读(785) 评论(0) 推荐(0) 编辑
摘要: 杨辉三角前言 关于杨辉三角,相信大家都很熟悉,忘记的同学请自行Wiki。下面引用一张 Wiki 上的图作为知识回顾。上面这张图可以简要概括出以下几点:1.每行数左右对称,且都是以1开始和结束的正整数。2.行数递增的同时,列数也在递增。3.两条斜边上的1除外,其它的元素值均由其上部两个数之和。如何用编程的方式实现打印(下三角)首先来看一下运行结果的截图:如上图,这是一个以下三角(直角三角形)的形式打印出来的,观察上面这张图,很容易就会使人联想到用一个矩阵来存储所有的数值,打印的时候只打印下三角即可。第1步:首先构建一个10x10的矩阵第2步:观察发现列下标为0的元素都为1,且行列下标值相等的元. 阅读全文
posted @ 2013-11-16 15:01 KANLEI 阅读(466) 评论(0) 推荐(0) 编辑
摘要: 1、JavaScript 代码应该放在<head>还是<body>中?我们都知道,JavaScript 代码既可以放在 <head> 标签中又可以放在 <body> 标签中,还可以放到 .js 文件中。但是什么时候放到 <head> 中,又什么时候放到 <body> 中呢?当我们对DOM进行修改的时候需要将 JavaScript 代码放置在 <body> 标签中,而且是放置到被更改标签之后,因为页面加载是由上倒下依次进行的,所有只有先加载被更改的标签,我们才能对其捕获并修改。只能放到 <body> 阅读全文
posted @ 2012-12-02 22:09 KANLEI 阅读(131) 评论(2) 推荐(0) 编辑
摘要: 值类型与引用类型前言 最近看了很多关于值类型与引用类型的文章,涵盖了很多零零散散以及不容易让人理解的知识,因此,将这些知识整理归纳一下,便于日后复习。 文章的目录结构:概念复制方式参数传递概念 C# 中定义了许多数据类型,它们被分为两大类,一类是:值类型,另一类是:引用类型。 下面这张图具体的值类型与引用类型的划分:CategoryDescription Value typesSimple typesSigned integral:sbyte,short,int ,longUnsigned integral:byte,ushort,uint,ulongUnicode character... 阅读全文
posted @ 2012-11-25 00:02 KANLEI 阅读(432) 评论(0) 推荐(0) 编辑
摘要: WebMatrix学习资源一、来源于ASP.NET 网站:对WebForm、WebPages以及MVC的简介: http://www.asp.net/web-forms/videos/how-do-i/choosing-the-right-programming-model 2.介绍视频: http://www.asp.net/web-pages/videos/introduction 3.WebMatrix 教程Introducing ASP.NET Web Pages 2 - Getting StartedIntroducing ASP.NET Web Pages 2 ... 阅读全文
posted @ 2012-11-17 17:55 KANLEI 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 浅、深复制以及原型模式文章的知识梳理顺序:首先比较了值类型赋值操作与引用类型的赋值操作的不同,接着讨论对于包含引用类型的值(或引用)类型进行赋值操作的情况,引出浅复制的概念,进一步思考如何进行深复制,介绍实现深复制的两种方式:1、 实现ICloneable接口 2、序列化的方法,最后介绍设计模式中的原型模式(Prototype)。值类型的赋值操作:首先新建一个结构体 Point: struct Point { // 结构的字段 public int X; public int Y; // 带参数的构造函数 // ... 阅读全文
posted @ 2012-10-07 17:42 KANLEI 阅读(250) 评论(0) 推荐(0) 编辑
摘要: 委托的异步性与方法回调知识回顾:首先声明一个委托如下: // 这个委托指向任意输入两个整数并返回一个整数的方法. public delegate int CalculateDelegate(int x,int y);查看IL代码:由图可以看出,C#编译器处理委托类型时,自动生成派生于 System.MulticastDelegate 的 sealed 类。并定义了三个方法,其中 Invoke() 方法被用来同步的方式调用方法;BeginInvoke() 和 EndInvoke() 方法被用来异步调用方法。以下是生成的代码: sealed class Calcu... 阅读全文
posted @ 2012-10-05 17:42 KANLEI 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 用C#创建一个屏幕保护程序原文地址: http://www.harding.edu/fmccown/screensaver/screensaver.html简介一个Windows屏幕保护程序是根据接收到的命令行参数来显示一个配置窗体,或者一个预览窗体的简单的Windows应用程序。Windows屏幕保护程序以.scr为后缀名并且一般存储在Windows\system32目录下,如果你的是64位的版本,则存储在Windows\SysWOW64目录下。这个教程会像你演示怎样用Visual Studio .NET中的C#语言创建一个屏幕保护程序。我们的屏幕保护程序会将同一行文本随机的在屏幕上的不同位 阅读全文
posted @ 2012-09-06 00:21 KANLEI 阅读(1842) 评论(0) 推荐(0) 编辑
摘要: Visual Studio 中的高级调试原文地址:http://www.codeproject.com/Articles/309781/Advanced-Debugging-in-Visual-Studio下载高级调试.zip - 28.2 KB (Visual Studio 2010 解决方案)简介我们中的许多开发者在使用 Visual Studio 进行调试的时候,只关注基本的 F9,F10,F11,F5 和窗体。因此,如果我们直接利用 Visual Studio 中丰富且有效的调试功,理想情况下本应该在几分钟就完成的调试一个问题或模拟一个条件,却最终导致花费了数个小时。高级调试的技巧分散 阅读全文
posted @ 2012-08-29 22:50 KANLEI 阅读(1400) 评论(0) 推荐(4) 编辑