自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 C# 中的枚举器

Iterator:枚举器如果你正在创建一个表现和行为都类似于集合的类,允许类的用户使用foreach语句对集合中的成员进行枚举将会是很方便的。这在C# 2.0中比 C# 1.1更容易实现一些。作为演示,我们先在 C# 1.1中为一个简单的集合添加枚举,然后我们修改这个范例,使用新的C#2.0 枚举构建方法。我们将以创建一个简单化的List Box作为开始,它将包含一个8字符串的数组和一个整

2009-05-21 18:02:00 355

原创 SQL优化二(存档)

 SQL语句: 是对数据库(数据)进行操作的惟一途径; 消耗了70%~90%的数据库资源;独立于程序设计逻辑,相对于对程序源代码的优化,对SQL语句的优化在时间成本和风险上的代价都很低; 可以有不同的写法;易学,难精通。 SQL优化: 固定的SQL书写习惯,相同的查询尽量保持相同,存储过程的效率较高。 应该编写与其格式一致的语句,包括字母的大小写、标点符号、换行的位置等都要一致 ORACL

2009-05-20 09:40:00 243

原创 SQL优化(存档)

优化数据库的方法:   1、关键字段建立索引。   2、使用存储过程,它使SQL变得更加灵活和高效。   3、备份数据库和清除垃圾数据。   4、SQL语句语法的优化。(可以用Sybase的SQL Expert,可惜我没找到unexpired的序列号)   5、清理删除日志。   SQL语句优化的原则:   ◆1、使用索引来更快地遍历表   缺省情况下建立的索引是非群集索引,但有时它并不是最佳的。

2009-05-20 09:23:00 225

原创 DateTime数据类型的XML序列化及时区问题(存档)

 DateTime数据类型的XML序列化及时区问题    今天有用户提到了数据库时间与界面显示的时间不一致,发现是由于Remoting在传输日期类型数据时,自动根据机器的区域设置进行了时区转换,所以仔细在网上找了找这方面的资料,现整理如下,供参考。一、.Net 2.0中,DataColumn增加了一个属性:DateTimeMode,用于控制日期的Xml序列化问题。见下面抓图: 

2009-05-19 17:55:00 770

原创 让窗体飘动起来 C#中Timer组件用法

Timer组件是也是一个WinForm组件了,和其他的WinForm组件的最大区别是:Timer组件是不可见的,而其他大部分的组件都是都是可见的,可以设计的。Timer组件也被封装在名称空间System.Windows.Forms中,其主要作用是当Timer组件启动后,每隔一个固定时间段,触发相同的事件。Timer组件在程序设计中是一个比较常用的组件,虽然属性、事件都很少,但在有些地方使用它会产生

2009-05-19 17:37:00 472

原创 浅析C#中的文件操作(存档)

 微软的.Net框架为我们提供了基于流的I/O操作方式,这样就大大简化了开发者的工作。因为我们可以对一系列的通用对象进行操作,而不必关心该I/O操作是和本机的文件有关还是和网络中的数据有关。.Net框架主要为我们提供了一个System.IO命名空间,该命名空间基本包含了所有和I/O操作相关的类。 本文将向大家介绍一些基本的文件操作方法,包括对文件系统中的目录和文件的操作,还有就是文件的读写

2009-05-19 16:12:00 441

原创 WinForm中窗体的单例模式和单进程(存档)

WinForm中窗体的单例模式和单进程 窗体单例模式的实现: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->public static ChatForm newForm = null;public static ChatForm GetI

2009-05-19 15:46:00 444

原创 c# SingleTon的线程安全(存档)

本文介绍了C#下关于单例的三种实现方法。    最普通的一种: 软件开发网 以下是引用片段:  using System;  public class Singleton  {  private static Singleton instance;  private Singleton() {}  public static Singleton Instance  {  get

2009-05-19 15:09:00 1350

原创 SQL行转列

SQL行转列(2008-07-07 20:14:36)标签:sql 行转列 it  分类:技术总结问题:有下列数据表  要将其转变为: 可以看得出来,表2列是由表1的行数据转化而来的,只有姓名列是表1中的列。一步一步的来嘛,其他的列难搞,如果表2只有1列姓名的话,那么very easy了,不就是一个简单的分

2009-05-15 20:40:00 389

原创 C# Partial Class(存档)

 C# 2.0 可以将类、结构或接口的定义拆分到两个或多个源文件中,在类声明前添加partial关键字即可。例如:下面的PartialTest类class PartialTest{string Str_FieldTest;int Int_FieldTest;public void DoTest(){Debug.Print("Test");}}可在不同源文件中写成下面形式:一个文件中写:part

2009-05-14 21:58:00 386

原创 C#结构体(存档)

c#中的结构体类型  struct 类型是一种值类型,通常用来封装小型相关变量组,例如,矩形的坐标或库存商品的特征。下面的示例显示了一个简单的结构声明。 public struct PostalAddress{// Fields, properties, methods and events go here...} 结构与类共享几乎所有相同的语法,但结构比类受到的限制更多: 尽管结

2009-05-14 21:09:00 406

原创 . Net环境下消息队列(MSMQ)对象的应用

. Net环境下消息队列(MSMQ)对象的应用  关于消息对象(MSMQ)的一些基本概念可以从《消息队列(Message Queue)简介及其使用》查阅,这里归纳在.Net 环境下应用消息队列(MSMQ)开发的一些基本对象和方法。 队列类型及其相应的路径格式:Public:  [MachineName]/[QueueName]Private:  [MachineName

2009-05-12 23:50:00 367

原创 .NET消息队列(存档)

.Net消息队列学习(一)    下面的示例只是涉及到构建发送者,发送复杂消息等操作。这里的复杂消息包括两种,一种是作者自己封装的一个类,获取对话框中的几个文本对话框的值。第二种是Net中自带的类Message,t填充他的几个属性,代码如下:  private System.Messaging.Message setMessage()<img id="Codehighlighter1_48_2

2009-05-12 23:47:00 415

原创 进程间通信

1 进程与进程通信    进程是装入内存并准备执行的程序,每个进程都有私有的虚拟地址空间,由代码、数据以及它可利用的系统资源(如文件、管道等)组成。多进程/多线程是Windows操作系统的一个基本特征。Microsoft Win32应用编程接口(Application Programming Interface, API)提供了大量支持应用程序间数据共享和交换的机制,这些机制行使的活动称为

2009-05-12 23:40:00 230

原创 windows form (窗体) 之间传值(存档)

windows form (窗体) 之间传值小结 在windows form之间传值,我总结了有四个方法:全局变量、属性、窗体构造函数和delegate。 第一个全局变量: 这个最简单,只要把变量描述成static就可以了,在form2中直接引用form1的变量,代码如下: 在form1中定义一个static变量public static int i= 9 ; Form2中的钮扣按钮如下:

2009-05-12 23:36:00 504

原创 C#集合类(存档)

一、先来说说数组的不足(也可以说集合与数组的区别)1.数组是固定大小的,不能伸缩。虽然System.Array.Resize这个泛型方法可以重置数组大小,但是该方法是重新创建新设置大小的数组,用的是旧数组的元素初始化。随后以前的数组就废弃!而集合却是可变长的。2.数组要声明元素的类型,集合类的元素类型却是object。3.数组可读可写不能声明只读数组。集合类可以提供ReadOnly方法

2009-05-12 17:57:00 404

原创 Invoke()/BeginInvoke()区别

查看MSDN如下:   Control..::.Invoke          ---> 在拥有此控件的基础窗口句柄的线程上执行委托。   Control..::.BeginInvoke  ---> 在创建控件的基础句柄所在线程上异步执行委托。   显然,Invoke() 与 BeginInvoke() 方法间的主要区别在于“异步”关键字眼。  也就是说,       Invoke

2009-05-11 09:45:00 1700

原创 ASP.NET服务器控件开发-控件生命周期

 ASP.NET 2.0服务器控件开发----控件生命周期  服务器控件生命周期简介    服务器控件的生命周期是创建服务器控件最重要的概念。作为开发人员,必须对服务器控件生命周期深刻理解。当然,这不是一朝一夕就可以做到的。对于学习控件开发技术的初学者,可以不必掌握得非常详细深入,只需对服务器控件的生命周期中的不同阶段有一个大致的了解即可。    在掌握服务器控件生命周期的过程中,读者要特别注意有

2009-05-06 20:53:00 355

原创 char vchar nchar nvchar的区别

char和varchar的长度都在1到8000之间,它们的区别在于char是定长字符数据,而varchar是变长字符数据。所谓定长就是长度固定的,当输入的数据长度没有达到指定的长度时将自动以英文空格在其后面填充,使长度达到相应的长度;而变长字符数据则不会以空格填充。text存储可变长度的非Unicode数据,最大长度为2^31-1(2,147,483,647)个字符。 后面三种数据类型和前面的相比

2009-05-06 20:43:00 543 1

原创 ASP.NET页面状态管理——ViewState的使用(转)

 ASP.NET ViewState设计目的是为了持久化当前页面中的对象的状态,以便下次在页面回发(Postback)后能够还原页面的状态。那么有两点需要注意:ViewState只在需要Postback的页面里才需要使用; 在1前提之下,只有初始状态值被修改了的对象才需要持久化,即才需要使用ViewState。 1比较清楚,来谈第2点。以简单的Label控件为例,先来看一下

2009-05-06 20:10:00 293

原创 虚方法与抽象方法有什么区别

抽象方法      使用abstract关键字    public    abstract    bool    Withdraw(…);      抽象方法是必须被派生类覆写的方法。      抽象方法是可以看成是没有实现体的虚方法      如果类中包含抽象方法,那么类就必须定义为抽象类,不论是否还包含其它一般方法          虚方法      使用virtual关键字    publi

2009-05-06 20:02:00 564

原创 C# 的readonly和const区别

 C#引入了readonly修饰符来表示只读域,const来表示不变常量。顾名思义对只读域不能进行写操作,不变常量不能被修改,这两者到底有什么区别呢?只读域只能在初始化--声明初始化或构造器初始化--的过程中赋值,其他地方不能进行对只读域的赋值操作,否则编译器会报错。只读域可以是实例域也可以是静态域。只读域的类型可以是C#语言的任何类型。但const修饰的常量必须在声明的同

2009-05-06 20:00:00 322

原创 HttpModule 介绍

Http 请求处理流程和 Http Handler 介绍这两篇文章里,我们首先了解了Http请求在服务器端的处理流程,随后我们知道Http请求最终会由实现了IHttpHandler接口的类进行处理(应该记得Page类实现了IHttpHandler)。从 Http 请求处理流程一文的最后的一幅图中可以看到,在Http请求由IHttpHandler处理之前,它需要通过一系列的Http Module;在

2009-05-06 19:47:00 406

原创 cookie和session

具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。同时我们也看到,由于采用服务器端保持状态的方案在客户端也需要保存一个标识,所以session机制可能需要借助于cookie机制来达到保存标识的目的,但实际上它还有其他选择。 cookie机制。正统的cookie分发是通过扩展HTTP协议来实现的,服务器通过在HTTP的响应头中加上一行特殊的

2009-05-06 19:40:00 284

原创 基础(存档)

 Abstruct class 与 Interface的区别 相同点: 1) 都不能被初始化; 2) 都支持抽象方法; 不同点: 1) abstract class的成员函数允许有函数体,interface不能 2) abstract class允许有成员变量,interface不能(interface只能含有事件,委托,函数,属性,索引器); 3) abstract class的方法允许含有可见

2009-05-06 19:10:00 279

原创 .net GC的工作原理(存档)

.net GC的工作原理  转自:http://blog.csdn.net/windfast_2000/archive/2003/08/29/14237.aspx引言内存管理是计算机科学中一个相当复杂而有趣的领域。在计算机诞生的这几十年间,内存的管理的技术不断进步,使系统能够更加有效地利用内存这一计算机必不可少的资源。一般而言,内存管理可以分为三类:硬件管理(如TLB),操

2009-05-06 18:59:00 458

原创 COM+(存档)

COM+  COM+是COM和MTS的统一。  COM+特性:  与 COM 一样,COM+ 基于二进制组件和基于接口的编程。通过使用透明 RPC 层,可以跨越进程和计算机边界进行远程方法调用。正如 COM 组件那样,COM+ 组件可以在成品中升级和扩展,而不会对使用它们的客户端应用程序造成负面影响。  与 MTS 一样,COM+ 支持分布式事务和基于角色的安全性。它提供内置线程池方案,该方案

2009-05-06 17:10:00 248

原创 C# 调用Windows API(存档)

在.Net Framework SDK文档中,关于调用Windows API的指示比较零散,并且其中稍全面一点的是针对Visual Basic .net讲述的。本文将C#中调用API的要点汇集如下,希望给未在C#中使用过API的朋友一点帮助。另外如果安装了Visual Studio .net的话,在C:/Program Files/Microsoft Visual Studio .NET/Fram

2009-05-06 17:01:00 280

原创 Windows API

 Windows API  1.什么是Windows API?   Windows 这个多作业系统除了协调应用程序的执行、分配内存、管理资源…之外, 她同时也是一个很大的服务中心,调用这个服务中心的各种服务(每一种服务就是一个函数),可以帮应用程式达到开启视窗、描绘图形、使用周边设备等目的,由于这些函数服务的对象是应用程序(Application), 所以便称之为 Application

2009-05-06 16:57:00 421

原创 C#多线程浅谈(存档)

 多线程是许多操作系统所具有的特性,它能大大提高程序的运行效率,所以多线程编程技术为编程者广泛关注。目前微软的.Net战略正进一步推进,各种相关的技术正为广大编程者所接受,同样在.Net中多线程编程技术具有相当重要的地位。本文我就向大家介绍在.Net下进行多线程编程的基本方法和步骤。开始新线程在.Net下创建一个新线程是非常容易的,你可以通过以下的语句来开始一个新的线程:Threa

2009-05-06 16:02:00 884

原创 GAC-Global Assembly Cache

GAC全称是Global Assembly Cache  作用是可以存放一些有很多程序都要用到的公共Assembly,例如System.Data、System.Windows.Forms等等。这样,很多程序就可以从GAC里面取得Assembly,而不需要再把所有要用到的Assembly都拷贝到应用程序的执行目录下面。举例而言,如果没有GAC,那么势必每个WinForm程序的目录下就都要从C:/

2009-05-06 15:07:00 703

原创 Strong-named Assembly (强命名)

强命名  强命名程序集(Strong Name Assembly)的概念  因为不同的公司可能会开发出有相同名字的程序集来,如果这些程序集都被复制到同一 个相同的目录下,最后一个安装的程序集将会代替前面的程序集。这就是著名的Windows “DLL Hell”出现的原因。  很明显,简单的用文件名来区分程序集是不够的,CLR需要支持某种机制来唯一的标识一个程序集。这就是所谓的强命名程序集。  

2009-05-06 15:05:00 474

原创 C# 异步调用(存档)

 我们要明确,为什么要进行异步回调?众所周知,普通方法运行,是单线程的,如果中途有大型操作(如:读取大文件,大批量操作数据库,网络传输等),都会导致方法阻塞,表现在界面上就是,程序卡或者死掉,界面元素不动了,不响应了。异步方法很好的解决了这些问题,异步执行某个方法,程序立即开辟一个新线程去运行你的方法,主线程包括界面就不会死掉了。异步如何开始,好理解,现在我们讨论的是如何结束这个异步出来的新线程。

2009-05-05 14:12:00 266

原创 C# 线程同步问题(存档)

对于引用类型和非线程安全的资源的同步处理,有四种相关处理:lock关键字,监视器(Monitor), 同步事件和等待句柄, mutex类。 Lock关键字    本人愚钝,在以前编程中遇到lock的问题总是使用lock(this)一锁了之,出问题后翻看MSDN突然发现下面几行字:通常,应避免锁定 public 类型,否则实例将超出代码的控制范围。常见的结构 lock (this)、lock (

2009-05-05 14:09:00 251

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除