博文
实现定制集合类 --- 基础篇(2007-10-28 23:33:00)
摘要:实现代码原理如下:
1、继承一个CollectionBase抽象类,该类又继承IList, ICollection, IEnumerable接口。而该抽象类提供一套的抽象方法并且提供数据结构InnerList(ArrayList)来定制自己的集合类。后续文章会介绍一下ArrayList这个数据结构。
2、实现代码如下:
using System;
using System.Collections.Generic;
using System.Collections;
using System.Text;
namespace DataStructureConsoleApplication
{
class CollectionProgram:CollectionBase
{
//implementing the Add Method using the ArrayList
public void Add(object item)
{
InnerList.Add(item);
}
//implementing the Remove Method using the ArrayList
public void Remove(object item)
{
&......
使用泛型进行变量的交换-算法开篇(一)(2007-10-28 14:31:00)
摘要:实现原理代码如下(对算法稍有了解都会明白原理的:)):
using System;
using System.Collections.Generic;
using System.Collections;
using System.Text;
namespace DataStructureConsoleApplication
{
class GenericProgram
{
//exchange the variables using the generic
static void Swap<T>(ref T val1, ref T val2)
{
T temp;
temp = val1;
val1 = val2;
val2 = temp;
}
static void Main(string[] args)
......
介绍本关于算法的好书(2007-10-24 22:26:00)
摘要:书名:<<Data Structures and Algorithms Using C#>>
书的简介:
1、C# Programmers: no more translating data structures from C++ or Java to use in your programs! Mike McMillan provides a tutorial on how to use data structures and algorithms plus the first comprehensive reference for C# implementation of data structures and algorithms found in the .NET Framework library, as well as those developed by the programmer. The approach is very practical, using timing tests rather than Big O notation to analyze the efficiency of an approach. Coverage includes arrays and array lists, linked lists, hash tables, dictionaries, trees, graphs, and sorting and searching algorithms, as well as more advanced algorithms such as probabilistic algorithms and dynamic programming. This is the perfect resource for C# professionals and students alike.
2、我的BLOG连接上都有。
书的封面:
下载地址:http://knowfree.net/2007/10/13/data-structures-and-algorithms-using-c-2.kf
希望对大家学习有所帮助!如果有关于算法的书籍也可以反馈给我,谢谢!
......
(转)C#与java的区别(2007-10-23 13:44:00)
摘要:引用地址:http://www.cnblogs.com/adaiye/archive/2007/10/23/934272.html
1.属性:
java中定义和访问均要用get和set方法,可以不成对出现。
c#中是真正的属性,定义时get和set也不必同时出现,访问时用.号即可。不用get,set
2.对象索引
就是对象数组
public Story this [int index] {
3.C#中,不用任何范围修饰符时,默认的是protect,因而不能在类外被访问.
4.因为JAVA规定,在一个文件中只能有一个public类,而且这个类的名称必须与文件名一模一样,这是一个区别
5.在C#中,它是以Main方法来定位入口的.如果一个程序中没有一个名为Main的方法,就会出"找不到入口的错误".不要把Main写成main哟
6.C#预定义的简单数据类型比Java多。例如,C#有unit,即无符号整数
7.忘掉Java中的static final修饰符。在C#中,常量可以用const关键词声明
C#的设计者还增加了readonly关键词,readonly域只能通过初始化器或类的构造函数设置
8.公用类的入口点:c#是可以对Main进行重载(java中是main),允许有int返回值和空参数的Main
9.在Java中,switch语句只能处理整数。但C#中的switch语句不同,它还能够处理字符变量。请考虑下面用switch语句处理字符串变量的C#代码
10.C#没有>>>移位操作符
11.goto关键词:
Java不用goto关键词。在C#中,goto允许你转到指定的标签。不过,C#以特别谨慎的态度对待goto,比如它不允许goto转入到语句块的内部。在Java中,你可以用带标签的语句加上break或continue取代C#中的goto。
12.int[] x = { 0, 1, 2, 3 };
int x[] = { 0, 1, 2, 3 };
但在C#中,只有第一行代码合法,[]不能放到变量名字之后。
页面输出缓存相关的指令(2007-10-22 23:15:00)
摘要:声明控制ASP.NET页面的输出缓存机制或者用户控件包含在页面。关于输出缓存更多信息,请查看ASP.NET Caching Features。<%@ OutputCache Duration="#ofseconds" Location="Any | Client | Downstream | Server | None" Shared="True | False" VaryByControl="controlname" VaryByCustom="browser | customstring" VaryByHeader="headers" VaryByParam="parametername" %>属性Duration时间,页面或者用户控件被缓存的秒数。建立这个属性在页面或者用户控件,为HTTP 响应确立一个到期的机制以及会自动缓存页面或者用户控件的输出。LocationOutputCacheLocation枚举值之一。确省值为Any。注意:该属性不支持@OutputCache指令包含在用户控件(.ascx文件)。Shared一个布尔值,确定用户控件是否可以被多个页面共赏。缺省值为false。更多信息请查看Remarks区段。注意:该属性不支持@OutputCache指令包含在ASP.NET页面(.aspx文件)。VaryByCustom 任何文本代表自定义输出缓存需求。如果赋予该属性的值为浏览器,缓存将随浏览器名称以及主要版本信息不同而不同。如果输入了自定义字符串,你必须在应用程序的Global.asax文件中重写HttpApplication.GetvaryByCustomString()方法。VaryByHeader 一个用来调整缓存的HTTP头的分号分隔的列表。当该属性被设置成多个头的时候,输出缓存为每个指定的头包含一个请求文档的不同版本。注意:设置VaryByHeader属性使用在全部HTTP1.1缓存中缓存项目,不只是ASP.NET缓存。该属性不支持@OutputCache指令在用户控件。VaryByParam 一个用来调整输出缓存的分号分隔的列表。这些字符串缺省对应于使用GET方法属性发送的查询字符串,或者使用POST方法发送的参数。当这个属性被设置成多个参数的时候,该输出缓存包含不同的为每个指定参数的请求文档的版本。可能这些值包含......
介绍一本好书-<<ASP.NET 2.0揭秘>>(2007-10-22 21:02:00)
摘要:本书简介:
本书是讲解微软公司ASP.NET 2.0 Framework最全面的图书,包含了用VB.NET和C#两种语言描述的上百段程序代码,覆盖了ASP.NET 2.0 Framework的方方面面。本书作者Stephen Walther是ASP界的名人,是微软公司的软件传奇人物(微软技术社区的最高荣誉)。本书主要介绍了高级的ASP.NET 2.0知识,其主要内容包括安全、创建ASP.NET应用、使用Web部件应用、创建自定义控件等,最后还给出了一个示例应用程序。.
本书适合中高级层次的ASP开发人员阅读。 ...
本书译者介绍:
Stephen Walther是蜚声世界的ASP.NET专家。微软的MVP,并荣获微软公司社区最高技术荣誉“微软传奇人物”称号。他曾经开发的微软ASP.NET示范性应用程序ASP.NET Community Starter Kit,麻省理工学院。斯坦福大学和哈佛大学等200多所大学使用的Collegescape应用程序,以及拍卖网站www.cityauction.com等,都已经成为经典。
谭振林(http://thinhunan.cnblogs.com),微软ASP.NET MVP。资深程序员,高级技术讲师,对ASP.NET及其相关技术有深入研究。博客园专家团队成员,CSDN2007英雄会受邀专家。曾主持设计实现过多个大型的Web2.0网站应用,同是也是国内较早的Web标准实践者。
黎志,2001年底开始接触微软.NET技术,2003年当选为微软ASP.NET MVP。他的技术博客“鸟食轩”致力于Web开发,是博客园上最受欢迎的博客之一。现工作于微软亚洲工程院,继续关注ASP.NET的开发及发展。
朱兴林,2006年7月当选为ASP.NET方向MVP。长期从事.NET技术在WindowsServer平台上的企业应用研究,并致力于.NET技术理念在软件社区的传播,是微软深圳.NET俱乐部创始人。
马士杰(http://teddy.cn),2006年4月当选为微软ASP.NET MVP。多年基于微软技术平台的开发经验。感......
如何使用 Visual C# .NET 在 ASP.NET 中执行片段缓存(2007-10-22 15:35:00)
摘要:引用自:http://support.microsoft.com/kb/308378
概要
loadTOCNode(1, 'summary');
本文演示如何在 ASP.NET 中实现片段缓存。实际上,片段缓存并不直接缓存 Web 窗体的代码片段,而是缓存 Web 窗体中的各个用户控件 (.ascx)。各个用户控件可以有独立的缓存持续时间和缓存行为的实现方式。本文中的示例代码演示了如何实现此功能。
片段缓存在您只想缓存页面的一个子集时很有用。导航栏、页眉和页脚都是很好的片段缓存候选对象。
回到顶端
要求
loadTOCNode(2, 'summary');
•
Microsoft Windows 2000
•
Microsoft Internet Information Server (IIS)
•
Microsoft .NET Framework
•
ASP.NET
回到顶端
使用 C# .NET 创建 ASP.NET Web 应用程序
loadTOCNode(2, 'summary');
下列步骤演示如何新建一个名为 FragmentCache 的 ASP.NET Web 应用程序。
1.
打开 Microsoft Visual Studio .NET。
2.
在文件菜单上,指向新建,然后单击项目。
3.
在新建项目对话框中,单击项目类型下的 Visual C# 项目,然后单击模板下的 ASP.NET Web 应用程序。
4.
在名称框中,键入 FragmentCache。在位置框中,选择适当的服务器。如果您是在使用本地服务器,可以将服务器名保留为 http://localhost。
回到顶端
创建用户控件
loadTOCNode(2, 'summary');
这一节提供了本文中将用到的各个用户控件的示例代码及其解释。您可以按如下所述将示例代码复制并粘贴到关联的 .ascx 文件和代码隐藏页中。
用户控件 1 (FragmentCtrl1.ascx)
loadTOCNode(3, 'summary');
下面的用户控件 FragmentCtrl1.......
(翻译)ASP.NET2.0中的输出缓存(2007-10-21 14:46:00)
摘要:
介绍:
采用缓存是改善web应用程序执行能力(性能)最可靠的方法之一。缓存在一个快速可存取的位置中采用一些昂贵的操作以及存储它的结果。ASP.NET版本1.0介绍了两种口味的缓存:
1、输出缓存---缓存整个提供一个ASP.NET web页面的组成或者特定期限的用户控件。
2、数据缓存---用来在web服务器内存中存储对象的一个以编程可存取, 在内存数据高速缓存。
获得更多关于ASP.NET 1.x的缓存可兼容性的深入讨论,参考Scott McFarland的ASP.NET的缓存技术以及Steve Smith的ASP.NET 缓存:技术与最佳实践的文章。
在ASP.NET 2.0中,缓存系统已经被扩展到包括SQL cache dependencies,cache profiles,以及回调缓存(post-cache)替换输出缓存。ASP.NET快速开始的Caching for Performance的一段提供ASP.NET 2.0的缓存选项的很好地概况。这篇文章探索ASP.NET中的输出缓存,以一个输出缓存的概况和随后进行仔细审视创建页开始,该创建页包括缓存和非缓存两者的组成,使用片段缓存(fragment caching)和回调缓存(post-cache)替换技术。继续读下去可以学习得更多!
输出缓存的概况
输出缓存通过缓存提供ASP.NET web页面的组成以及服务这项内容,而不是重新绘制页面来改善ASP.NET应用程序的性能。举个例子,想象一个你拥有一个ASP.NET页面,用来显示数据库Employees表的记录,列出当前employee的信息。没有缓存,每一次该页面存取一个连接来连接数据库,表被查询,以及结果返回到请求的客户端。但是employee信息每隔多久变化呢?可能不超过每日一次或使,使得许多这些对数据库的请求多余的。有了输出缓存,当该页面第一次被访问绘制的HTML将会以特定的期限被缓存下来。在这段时间期间,如果用户请求该页面,该缓存组成会被返回,从而节省数据库访问以及页面绘制的费用。
总而言之那就是输出缓存!为了实现输出缓存,简单地添加<% @OutputCahe %>指向你的页面......
探讨一下静态构造函数(二)(C#版)(2007-10-14 23:10:00)
摘要:因为前面的一篇的文章已介绍了静态构造函数的一些特性,这篇文章着重介绍静态构造函数的一些用法:
代码如下:
//代码段一
using System;
class MyClass
{
public static int x;
public static int y;
static MyClass ()
{
x = 100;
y = 200;
}
static void Main()
{
Console.WriteLine("{0},{1}",MyClass.x,MyClass.y);//在C#中静态成员属于类的成员,不//需要实例化对象来调用。
}
}
运行结果:100,200
//代码段二
class Test
{
private static int id = 5;
public static int Id
{
get
{
return id;
}
}
&n......