编程技巧 - 文章列表

  • ASP.NET:一段比较经典的多线程学习代码

    一段比较经典的多线程学习代码。\n  1、用到了多线程的同步问题。  2、用到了多线程的顺序问题。\n  如果有兴趣的请仔细阅读下面的代码。注意其中代码段的顺序,思考一下,这些代码的顺序能否互相调换,为什么?这应该对学习很有帮助的。为了演示,让所有的线程都Sleep了一段时间。using System.Net;using System;using System.IO;using System.Text;using System.Threading;using System.Diagnostics;\nnamespace Webb.Study{ class TestThread {

  • C# 4.0语言将出现重大改变,带来一段Code Preview

    虽然现在C# 2.0还没有普及虽然现在C# 3.0还抱着琵琶 : )但是C# 4.0已经在研制中了~~\n在微软的研究院里,C# 4.0的雏形已经出现了,并且与之前的C#语言有着很大的不同可以这样说,之前的C#语言还算是C家族的成员,那么,C# 4.0将推翻人们的这种看法!\n废话少说,看代码:下面是一段典型的现在的C#代码:1public void Main(string[] args) {23 Console.WriteLine(“Hello World”);45}在熟悉不过了~~Hello World而已!下面就是我们的未来派C# 4.0的等效代码:1(args of string

  • ASP.NET 2.0 中使用自定义缓存依赖

     在 ASP.NET 1.x 中,我们可以使用 CacheDependency 来实现缓存依赖策略,但由于这个类是 sealed 的,我们无法继承这个类来实现我们自己的策略。但是到了 ASP.NET 2.0,我们已经可以从这个类派生出自己的缓存依赖类了。\n  假定我们要设计一个页面,需要从博客园首页获取最新的贴子信息。为了提高性能,我们希望页面数据仅当博客园首页有更新时才重新生成,否则的话就直接从缓存中获取。如何实现?\n  一、设计 BlogCacheDependency 类\n  先分析一下,首先,毫无疑问的,这个类应当从 CacheDependency 派生出来,然后它才能在 Cach

  • 使用Data Access Application Block 得到存储过程的返回值

    今天有位朋友问我如何在Data Access Application Block中得到存储的过程的返回值,我才发现自己以前写的文章中确实没提到这方面的问题,现在来补充一下,具体的解决方法如下:\n  1、首先建立一个具有返回值的存储过程,作为示例,我就简单的建一个存储过程,如下:\ncreate proc test( @id int)asdeclare @flag intselect * from person where id=@idif @@rowcount > 0 set @flag=1else set @flag=0return @flag\n  

  • 统一建模语言UML轻松入门之基本概念

    20 世纪80 年代,随着面向对象技术成为研究的热点,先后出现了几十种面向对象的软件开发方法。其中,Booch、OMT 和OOSE等方法得到了广泛的认可。然而,采用不同方法进行建模不利于开发者之间的交流。而UML则统一了Booch、OMT 和OOSE 的表示方法,而且对其作了进一步的发展。1997 年,UML 被国际对象组织OMG采纳为面向对象的建模语言的国际标准,它溶入了软件工程领域的新思想、新方法和新技术。UML不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。数年来,UML凭借其简洁明晰的表达方式、超凡脱俗的表达能力,一路杀将出来,为业界所广泛认同!目前,在多数大型

  • C#箴言之用属性来访问类的私有成员

    在程序中,难免要访问某个对象的私有成员。那么以前实现这类功能的方法有两种,第一种方法最简单,就是把成员访问符从“private”改为“public”即可;而另一个就是提供公有的成员访问函数来进行访问。那么现在用C#编写程序,就不再需要采用前面所说的两种方法了,而直接使用属性来完成。   首先来看看三种方法的如何实现以及调用的,这里用一个例子来说明,即访问“EmployeeInfo”类的私有成员strName,具体如下表格所示。private string strName;\n访问方法修改成员访问符\n修改:private string strName;为:public string strNa

  • 关于.NET动态代理的介绍和应用简介

    引言  假如现在我们有这样在这个示例中我将使用尽可能简单的逻辑实现所有功能需求,这将更突出我们所要解决的核心问题。例子是一个简单计算器类: \npublic class Calculator{ public int Add(int x, int y) { return x + y; }}

  • C#中父窗口和子窗口之间实现控件互操作

    很多人都苦恼于如何在子窗体中操作主窗体上的控件,或者在主窗体中操作子窗体上的控件。相比较而言,后面稍微简单一些,只要在主窗体中创建子窗体的时候,保留所创建子窗体对象即可。   下面重点介绍前一种,目前常见的有两种方法,基本上大同小异:  第一种,在主窗体类中定义一个静态成员,来保存当前主窗体对象,例如:\npublic static yourMainWindow pCurrentWin = null;

  • C#程序设计入门经典之C#的基本语法

    C#代码的外观和操作方式与C++和Java非常类似。初看起来,其语法可能比较混乱,不像书面英语和其他语言。但是,在C#编程中,使用的样式是比较清晰的,不用花太多的力气就可以编写出可读性很强的代码。  与其他语言的编译器不同,无论代码中是否有空格、回车符或tab字符(这些字符统称为空白字符),C#编译器都不考虑这些字符。这样格式化代码时就有很大的自由度,但遵循某些规则将有助于使代码易于阅读。  C#代码由一系列语句组成,每个语句都用一个分号来结束。因为空格被忽略,所以一行可以有多个语句,但从可读性的角度来看,通常在分号的后面加上回车符,这样就不能在一行上放置多个语句了。但一句代码放在多个行上是可

  • 浅析CMS内容管理系统的两种方案

    目前市面上成熟的CMS产品有很多,无外乎两种解决方案:第一种就是用XSL+XML的方式来实现客户端具体数据;第二种是生成HTML或者SHTML来实现。  设计阶段的想法是,用XSL来实现文章和内容的模版,用XML来存储数据,生成静态的HTML或SHTML。到实际应用中发现了HTML转换的问题,用XSL+XML生成HTML时,XML内容中不需要进行转化的内容,使用CDATA,在XSL文件中引用部分使用disable-output-escaping=”yes”,生成HTML时照样将html代码进行了解析,例如<变成了<等等,我们还要对此再进行一边转码,但是还要