摘要: 最近经常看见有人问怎样放大和缩小图片,我之前也做过一次,下面就把我的方法共享出来。我有2个种方法实现:第一种方法可以兼容IE和火狐(其他的浏览器我没有测试);第二种方法只能兼容IE。第一种方法很简单,代码如下:<%@PageLanguage="C#"AutoEventWireup="true"CodeBehind="Image.aspx.cs"Inherits="ImageZoom.Image"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transi 阅读全文
posted @ 2011-11-07 16:12 追_bk 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 反射提供了封装程序集、模块和类型的对象(Type 类型)。可以使用反射动态创建类型的实例,将类型绑定到现有对象,或从现有对象获取类型并调用其方法或访问其字段和属性。如果代码中使用了属性,可以利用反射对它们进行访问。----这是反射最简单的理解。下面就是一个最简答的实例来讲述反射技术的应用!一. 声明接口,接口中包含一个虚方法。如下usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespaceConsoleApplication1{publicinterfaceIReflect{voi 阅读全文
posted @ 2011-11-07 16:11 追_bk 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 当在 一个页面显示一个文章的内容时,如果文章太长,会造成页面无限高,样式很不好看,对此我有两种解决方法:一,将内容放 在<div>标签中,然后设置标签的style,具体<div style="overflow:auto;height:50px;">,这里的height是设置div的高度,然后设置当高度超过后会显示一 个滚动条,不会破坏页面的整体效果二,在后来通过分割字符来进行分页,代码如下:前台代码<div class="rBox artBox" style="margin-top:0;background-col 阅读全文
posted @ 2011-11-07 16:08 追_bk 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 1. ASP.NET属性: 获取服务器电脑名:Page.Server.ManchineName 获取用户信息:Page.User 获取客户端电脑名:Page.Request.UserHostName 获取客户端电脑IP:Page.Request.UserHostAddress 2. 网络编程方法: 获取当前电脑名:static System.Net.Dns.GetHostName() 根据电脑名取出全部IP地址:static System.Net.Dns.Resolve(电脑名).AddressList 也可根据IP地址取出电脑名:static System.Net.Dns.Resolve(I 阅读全文
posted @ 2011-11-07 16:07 追_bk 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 所谓集合是特殊元素们的一种聚合。集合的元素被称为是成员。集合有两个最重要的属性,一个是集合成员都是无序的,另一个则是集合的成员不会出现超过一次。本节讨论用散列表作为潜在的数据存储来提供一种十分简单的实现。用这种实现所产生的问题就是它的效率问题。人们把集合定义成相关成员的无序聚集,而且集合中的成员不会出现超过一次。集合书写成用一对闭合大括号包裹成员列表的形式,例如{0,1,2,3,4,5,6,7,8,9}。只要全部成员只书写一次,就可以按照任意顺序书写集合。1.集合的散列实现。publicclassCSet{privateHashtabledata;publicCSet(){data=newHa 阅读全文
posted @ 2011-11-07 16:05 追_bk 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 链表是被称为节点的类对象的群集。每一个节点通过一个引用链接到列表内的后继节点上。节点包括存储数据的字段和节点引用的字段。到另外一个节点的引用被称为是链接。数组和链表之间的一个主要区别就是数组内的元素是通过位置(索引)进行引用的,而链表内的元素则是通过它们与数组其他元素的关系进行引用的。1.面向对象链表的设计。链表的设计至少包含两个类。这里会创建一个Node 类,而且每次向链表添加节点的时候会实例化一个Node 对象。链表内的节点通过索引与其他节点相互连接在一起。而且把这些索引设置为使用创建在一个独立的LinkedList 类中的方法。节点是由两个数据成员组成的:存储着节点数据的Element, 阅读全文
posted @ 2011-11-07 16:04 追_bk 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 散列是一种常见的存储数据的技术,按照这种方式可以非常迅速地插入和取回数据。散列所采用的数据结构被称为是散列表。尽管散列表提供了快速地插入、 删除、以及取回数据的操作,但是诸如查找最大值或最小值这样的查找操作,散列表却无法执行地非常快。对于这类操作,其他数据结构会更适合。.NET 框架库提供了一种非常有用的处理散列表的类,即Hashtable 类。A.散列。散列表数据结构是围绕数组设计的。虽然可以稍后根据需要增加数组的大小,但是数组是由第0 号元素一直到一些预定义尺寸的元素组成的。存储在数组内的每一个数据项都是基于一些数据块的,这被称为是关键字。为了把一个元素存储到散列表内,利用所谓 的散列函数 阅读全文
posted @ 2011-11-07 16:03 追_bk 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 字典是一种把数据作为键值对来存储的数据结构。作为一种抽象的类,DictionaryBase 类可以用来实现不同的数据结构,其中这些数据结构全部把数据存储成键值对。这些数据结构可能是散列表、链表或者其他一些数据结构类型。SortedList类是按照分类顺序基于键值来存储键值对的。这是一种有趣的数据结构,因为通过引用数据结构中值的索引位置也可以访问到存储在结构中的数据,这也使得结构的行为在某些方面和数组很相像。A.Dictionary类。DictionaryBase 类是一种用作专有字典实现基础的抽象(MusInherit)类。存储在字典中的键值对实际上是作为DictionaryEntry 对象来 阅读全文
posted @ 2011-11-07 16:02 追_bk 阅读(299) 评论(0) 推荐(0) 编辑
摘要: 所谓正则表达式是一种用于描述字符串中字符格式的语言,它提供了对应于重复字符、替换符符以及分组字符的描述符。正则表达式既可以用来执行字符串的搜索,也可以用于字符串的替换。正则表达式本身就是一个定义了用于其他字符串搜索模式的字符串。通常情况下,正则表达式中的字符与其自身匹配,因此正则表达式“the”可以与字符串中任意位置找到的同样字符序列相匹配。正则表达式还可以包含称之为元字符的特殊字符。元字符用于表示重复、替换或者分组。1.正则表达式使用。为了使用正则表达式, 需要把RegEx 类引入程序。大家可以在System.Text.RegularExpression 名字域中找到这种类。一旦把这种类导入 阅读全文
posted @ 2011-11-07 16:01 追_bk 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 字符串是字符的序列。它可以包含字母、数字和其他符号。在C#语言中把字符序列用一对闭合的双引号包围起来就可以产生文字串,如:“My name is xxx”。字符串可以由来自Unicode 字符集的任何字符组成。字符串也可以是没有字符而组成的。这种特殊的字符串被称为是空字符串。它的形式是由一对彼此相连的双引号构成的(“”)。请千万记住这不是表示空格的字符串。表示空格的字符串形式是“ ”。C#语言中的字符串具有精神分裂的天性——即字符串既是本地类型又是类的对象。实际上更准确的说法应该是可以把字符串作为本地数据值来使用,但是事实上每个产生的字符串都是String 类的一个对象。A.String对象1 阅读全文
posted @ 2011-11-07 16:00 追_bk 阅读(221) 评论(0) 推荐(0) 编辑
摘要: BitArray 类是按照紧密格式来表示位集合。虽然我们能把位集合存储在常规数组内,但是如果采用专门为位集合设计的数据结构就能够创建更加有效的程序。BitArray 类用来处理位集合。位集合可以用来有效地表示Boolean(布尔)值的集合。BitArray和ArrayList 十分类似,这是因为可以对BitArray 进行动态地大小调整,而且在需要时添加二进制位而不用担心数组越界的问题。 1.使用BitArray 类。通过实例化BitArray 对象就可以创建BitArray,并且同时会把希望在数组内的二进制位的数量传送给构造器。如下 BitArray BitSet = new BitArra 阅读全文
posted @ 2011-11-07 15:59 追_bk 阅读(462) 评论(0) 推荐(0) 编辑
摘要: 队列是一种把数据从表的末端放入并在表的前端移除的数据结构。队列会按照数据项出现的顺序来存储它们。队列是先进先出(FIFO)数据结构的实例。队列用 来对提交给操作系统或打印池的任务进行排序,而模拟应用程序则用队列对用户等待队列进行模拟。队列包含两种主要的操作。一个是给队列添加新的数据项,另一 个则是把数据项从队列中移除。添加新数据项的操作被称为是Enqueue,而从队列中移除数据项的操作则被称为是Dequeue。Enqueue 操作会在队列的末尾添加一个数据项,而Dequeue 操作则会从队列的前端(或开始处)移除一个数据项。(1).Queue类。下面这个Queue 类的实现包含EnQueue 阅读全文
posted @ 2011-11-07 15:58 追_bk 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 堆栈和队列是两种面向表的数据结构,它们都提供了易于理解的抽象。堆栈中的数据只能在表的某一端进行添加和删除操作,反之队列中的数据则在表的一端进行添加操作而在表的另一端进行删除操作。堆栈被广泛用于从表达式计算到处理函数调用的任何编程语言的实现中。而队列则用在区分优先次序的操作系统处理以及模拟现实世界的事件方面,比如银行出纳柜台的队列,以及建筑物内电梯的操作。C#语言为使用这些数据结构提供了两种类:Stack 类和Queue 类。1.堆栈。堆栈是最频繁用到的数据结构之一。这里把堆栈定义为数据项的列表,而且这些数据项只能从表的末端进行存取访问。可存取访问的这端被称为是栈顶。堆栈的标准模型是自助餐厅的盘 阅读全文
posted @ 2011-11-07 15:58 追_bk 阅读(341) 评论(0) 推荐(0) 编辑
摘要: 数据查找是基础的计算机编程工作,而且人们对它的研究已经很多年了。有两种对列表内数据进行查找的方法:顺序查找和二叉查找。当数据项在列表内随机排列的时候可以使用顺序查找,而当数据项在列表内有序排列的时候则会用到二叉查找。1.顺序查找算法。最突出的查找类型就是从记录集的开始处顺次遍历每条记录,直到找到所要的记录或者是到达数据集的末尾。这就是所谓的顺序查找。顺序查找(也被称为线性查找)是非常容易实现的。从数组的起始处开始,把每个访问到的数组元素依次和所要查找的数值进行比较。如果找到匹配的数据项,就结束查找操作。如果遍历到数组的末尾仍没有产生匹配,那么就说明此数值不在数组内。下面是一个执行顺序查找操作. 阅读全文
posted @ 2011-11-07 15:56 追_bk 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 在计算机中实现存储数据最普遍的两种操作就是排序和查找。这是从计算机产业初始就已经确认的了。这意味着排序和查找也是计算机科学领域最值得研究的两种操作。这些简单算法就是插入排序算法、冒泡排序算法以及选择排序算法。这些算法的每一种都很容易理解和实现。对于任意情况而言这些算法不是最好的全面算法,但是对于少量数据集合或者其他特殊情况而言,它们是可用的最好算法。1.冒泡排序。冒泡排序是可用的最慢排序算法之一,但是它也是最容易理解和实现的排序算法之一。这种排序算法的得名是由于数值“像气泡一样”从序列的一端浮动到另一端。假设现在要把一列数按升序方式进行排序,即较大数值浮动到列的右侧,而较小数值则浮动到列... 阅读全文
posted @ 2011-11-07 15:55 追_bk 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 当无法提前知道数组的大小或者在程序运行期间数组的大小可能会发生改变的时候,静态数组就不是很适用了。这类问题的一种解决方案就是当数组超出存储空间的时使用能够自动调整自身大小的数组类型。这种数组被称为是ArrayList 。它是.NET 框架库中System.Collections 命名空间的内容。ArrayList 对象拥有可存储数组大小尺寸的Capacity 属性。该属性的初始值为16。当ArrayList中元素的数量达到此界限值时,Capacity 属性就会为ArrayList 的存储空间另外增加16 个元素。在数组内元素数量有可能扩大或缩小的情况下使用ArrayList 会比用带标准数组的 阅读全文
posted @ 2011-11-07 15:54 追_bk 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 面向对象编程的问题之一就是所谓“代码膨胀”的特征。为了说明方法参数所有可能的数据类型而需要重载某种方法或重载一套方法集合的时候,就会发生某种类型的代码膨胀。代码膨胀的解决方案之一就是使某个值呈现多种数据类型的能力,同时仅提供此值的一种定义。这种方法被称为是范型编程。范型编程提供数据类型“占位符”。它在编译时由特定的数据类型填充。这个占位符用一对尖括号(< >)和放在括号间的标识符来表示。下面来看一个实例staticvoidSwap<T>(refTval1,refTval2){Ttemp;temp=val1;val1=val2;val2=temp;} 立刻把数据类型占位符 阅读全文
posted @ 2011-11-07 15:54 追_bk 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 1.定义Collection 类 在C#语言中定义一个Collection 类最简单的方法就是把在System.Collections 库中已找到的抽象类CollectionBase 类作为基础类。此类提供了一套可以实现构造自身群集的抽象方法集合。CollectionBase 类还提供了一种基础的数据结构——InnerList(一个ArrayList)。此结构可以用作自身类的基础。本章节会看到如何使用CollectionBase 来构造Collection类。 2. 实现Collection 类 弥补Collection 类的全部方法包括一些与类的基础数据结构InnerList 相交互的类型。 阅读全文
posted @ 2011-11-07 15:52 追_bk 阅读(222) 评论(0) 推荐(0) 编辑