
C#
chpdirector84
这个作者很懒,什么都没留下…
展开
-
泛型和非泛型
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 <!-- /* Sty原创 2009-08-20 18:54:00 · 2178 阅读 · 0 评论 -
ThreadPool 使用说明
ThreadPool 使用说明一、首先定义了一个 System.Threading.WaitCallback 对象 waitCallback。WaitCallback 是一个委托,表示线程池线程要执行的回调方法,它的原型如下: [ComVisibleAttribute(true)] public delegate void WaitCallback (Ob原创 2010-03-24 11:49:00 · 2289 阅读 · 0 评论 -
readonly const IComparable
C#语言有两种不同的常量机制:一种为编译时(compile-time)常量,一种为运行时(runtime)常量。我们说运行时常量优于编译时常量。编译时常量比运行时常量稍微快一点,但却缺乏灵活性。编译时常量只可以用于基元类型(包括内建的整数类型和浮点类型)、枚举类型或字符串类型。因为只有这些类型才允许我们在初始化器中指定有意义的常量值private const DateTime _cla原创 2010-03-24 11:10:00 · 552 阅读 · 0 评论 -
is 和 as 的区别
is 和 as 的区别1:is就是处于对类型的判断。返回true和false。如果一个对象是某个类型或是其父类型的话就返回为true,否则的话就会返回为false。另外is操作符永远不会抛出异常。代码如下: System.Boolean b1 = (o is System.Object);//b1 为true System.Boolean b2 = (o is Empl原创 2010-03-23 16:41:00 · 1535 阅读 · 0 评论 -
Dispose 和 finalizer
Dispose 和 finalizer一:托管资源,非托管资源,GC,CLR托管资源:一般是指被CLR控制的内存资源,这些资源的管理可以由CLR来控制,例如程序中分配的对象,作用域内的变量等。非托管资源:是CLR不能控制或者管理的部分,这些资源有很多,比如文件流,数据库的连接,系统的窗口句柄,打印机资源等等……这些资源一般情况下不存在于Heap(内存中用于存储对象实例的地方)中。原创 2010-03-23 15:44:00 · 1883 阅读 · 0 评论 -
c# 相等判断之间的关系
C#提供了四种不同的函数来判断两个对象是否“相等”:public static bool ReferenceEquals ( object left, object right );//不要重写public static bool Equals ( object left, object right );//不要重写public virtual bool Equals( object转载 2010-03-24 11:09:00 · 1910 阅读 · 0 评论 -
c# 异常类用途及设计
1:SystemException类:该类是System命名空间中所有其他异常类的基类。(建议:公共语言运行时引发的异常通常用此类)2:ApplicationException类:该类表示应用程序发生非致命错误时所引发的异常(建议:应用程序自身引发的异常通常用此类),如果我们要自定义异常类,那么就应派生于它。 #region CarIsDeadException, take thre原创 2010-03-23 14:09:00 · 1350 阅读 · 0 评论 -
静态类的特点及用途
1:静态类只用于包含静态成员的类型,不能被实例化,我们可以直接使用它的属性与方法,静态类最大的特点就是共享。静态类的特性是防止继承,防止外部来NEW。它相当于一个sealed abstract类。2:静态类和类成员用于创建无需创建类的实例就能够访问的数据和函数。静态类成员可用于分离独立于任何对象标识的数据和行为:无论对象发生什么更改,这些数据和函数都不会随之变化。当类中没有依赖对象标识的数据或原创 2010-03-23 10:07:00 · 14582 阅读 · 0 评论 -
C#关键字abstract virtual interface new override
一:abstract 修饰符可以和类、方法、属性、索引器及事件一起使用。在类声明中使用 abstract 修饰符以指示某个类只能是其他类的基类。标记为抽象或包含在抽象类中的成员必须通过从抽象类派生的类来实现。 abstract class ShapesClass { abstract public int Area(); } class S原创 2010-03-23 10:06:00 · 1310 阅读 · 0 评论 -
Debug Trace
using System;using System.Diagnostics;//确保 Debug 是当前的解决方案配置。//如果“解决方案资源管理器”窗口不可见,请按 CTRL+ALT+L 组合键以显示此窗口。//右键单击“conInfo”,然后单击“属性”。//在 conInfo 属性页左窗格中,在“配置”文件夹下,请确保箭头指向“调试”。//在“配置”文件夹上面的“配置转载 2010-03-25 16:53:00 · 749 阅读 · 0 评论 -
IComparer和IComparable的区别
一:IComparable//IComparable接口只有一个方法:CompareTo(),这个方法沿用了传统的C函数库里的strcmp函数的实现原则://如果当前对象比目标对象小,它的返回值小于0;如果相等就返回0;如果当前对象比目标对象大,返回值就大于0。//函数原型如下:public interface IComparable{ int CompareTo(o原创 2010-03-26 14:03:00 · 3403 阅读 · 1 评论 -
结构数组转换
结构 数组原创 2010-11-24 23:21:00 · 545 阅读 · 0 评论 -
LINQ操作说明
一:LINQ的使用,查询表达式 class Program { static void ReflectOverQueryResults(object resultSet) { Console.WriteLine("***** Info about your query *****"); Console.WriteL原创 2010-05-17 15:23:00 · 506 阅读 · 0 评论 -
索引 操作符 指针
一:数组索引器 如果用foreach的话,需要从IEnumerable继承 public class PeopleCollection : IEnumerable 而且需要重载 IEnumerator IEnumerable.GetEnumerator() { return arPeople.GetEnumerator(); } public class P原创 2010-04-29 15:57:00 · 842 阅读 · 0 评论 -
设计模式综合
1 设计原则 开闭原则 对扩展开放,对修改关闭 对可变性进行封装 抽象化是关键 里氏代换原则 任何基类可以出现的地方,子类一定可以出现 对开闭原则的补充 违反里氏代换原则,则必然违反开闭原则,反之不一定成立 依赖倒转原则 要依赖于抽象,不要依赖于实现 针对接口编程,不要针对实现编程 开闭原则是目标,依赖原创 2010-04-26 16:24:00 · 1253 阅读 · 0 评论 -
数据备份(异步拷贝数据)
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using原创 2010-04-09 20:19:00 · 1111 阅读 · 0 评论 -
delegate event Lambda
一:DELEGATE介绍 public delegate string MyDelegate(bool a, bool b, bool c); sealed class MyDelegate : System.MulticastDelegate { public MyDelegate(object target, uint functionAddress);原创 2010-04-06 16:12:00 · 929 阅读 · 0 评论 -
依赖,关联,聚合,组合
一:继承/泛化 public class Employee { } public class SaleEmployee:Employee { }二:依赖:依赖关系是指一个类对别一个类的依赖(如动物依赖于水和氧气) 就是一个类A使用到了另一个类B,而这种使用关系是具有偶然性的、、临时性的、非常弱的,但是B类的变化会影响到A转载 2010-03-30 10:48:00 · 572 阅读 · 0 评论 -
IEnumerable和IEnumerator区别
在C#中,一个Collection要支持foreach方式的遍历,必须实现IEnumerable接口(亦即,必须以某种方式返回IEnumerator object)。枚举数只允许读取集合中的数据。枚举数无法用于修改基础集合。函数原型如下: public interface IEnumerable { //IEnumerable只有一个方法,返回可循环访原创 2010-03-26 14:53:00 · 2760 阅读 · 2 评论 -
C#静态构造函数特点和应用
静态构造函数 一:特点 1:静态构造函数既没有访问修饰符,也没有参数。 2:如果没有编写静态构造函数,而这时类中包含带有初始值设定的静态字段,那么编译器会自动生成默认的静态构造函数。 3:在创建第一个类实例或任何静态成员被引用时,.NET将自动调用静态构造函数来初始化类,也就是说我们无法直接调用静态构造函数,也就无法控制什么时候执行静态构造函数了。原创 2010-03-22 17:18:00 · 3455 阅读 · 0 评论 -
c#控件操作数据库
C#控件操作数据库 本文主要用到两个控件SqlConnection, SqlDataAdapter。这两个控件的添加方法,ToolsChoose Toolbox Items中,可以找到这两个控件,添加完后,就可以在工具面板中看到这两个控件了。一:SqlDataAdapter,SqlConnection控件设置。 将SqlDataAdapter控件拖入窗体上,会弹出Da原创 2010-03-19 10:24:00 · 3077 阅读 · 0 评论 -
正则表达式
一:System.Text.RegularExpressions 命名空间 1:Regex:包含了正则表达式,以及使用正则表达式的各种方法。 2:MatchCollection:包含了一个正则表达式找到的所有匹配项。 3:Match:包含了一次匹配中所有匹配的文本。 4:GroupCollection,包含了一次匹配中所有分组。 5:Group原创 2009-10-10 14:15:00 · 432 阅读 · 0 评论 -
c# DLL接口回调函数
一:回调函数1:DLL内部 //声明回调函数 typedef void (CALLBACK* ONSERIESDATA)(BYTE* buf, DWORD dwBufLen, DWORD dwTime, bool bDown); //DLL接口中的传入回到函数 extern "C" __declspec(dllexport) void WIN原创 2009-09-29 10:47:00 · 4173 阅读 · 0 评论 -
BackgroundWorker组件进行异步操作UI
BackgroundWorker组件进行异步操作UI一:概述在应用程序中,可能会遇到一些执行耗时的功 能操作,比如数据下载、复杂计算及数据库事务等,一般这样的功能会在单独的线程上实现,执行结束后结果显示到用户界面上,这样可避免造成用户界面长时间无 响应情况。在.NET 2.0及以后的版本中,FCL提供了BackgroundWorker组件来方便的实现这些功能要求。 二:组件介绍转载 2009-09-29 14:57:00 · 1251 阅读 · 0 评论 -
C#异步调用方法总结
using System;using System.Threading ; namespace AsyncDemo{ class AsyncDemo { [STAThread] static void Main(string[] args) { AsyncDemo ad = new原创 2009-09-01 14:43:00 · 890 阅读 · 0 评论 -
多线程同步总结
线程同步方法总结在编写多线程程序时无可避免会遇到线程的同步问题。线程同步有多种方法,总结如下:一:volatile和synchronized首先:volatile是变量修饰符,而synchronized则作用于一段代码或方法;1:例如int geti1() {return i1;}由于每个线程可以有它自己的变量拷贝,而这个变量拷贝值可以和“主”内存区域里存放的不原创 2009-08-24 20:14:00 · 1121 阅读 · 0 评论 -
进程,线程,多线程概念
一概念:进程:一个进程通常定义为程序的一个实例。在Win32中, 进程占据4GB的地址空间。Win32进程是没有活力的。这就是说,一个Win32进程并不执行什么指令,它只是占据着4GB的地址空间,此空间中有应用程序EXE文件的 代码和数据。EXE需要的任意DLL也将它们的代码和数据装入到进程的地址空间。除了地址空间,进程还占有某些资源,比如文件、动态内存分配和线程。当进 程终止时,在它生命原创 2009-08-24 15:39:00 · 553 阅读 · 0 评论 -
Delegate委托 和 Event事件
一:事件事件其实就是一个特殊的委托。MSDN中的C#参考里这样描述:事件是特殊类型的多路广播委托(一个事件可以搭载多个方法),仅可从声明它们的类或结构(发行者类)中调用。如果其他类或结构订阅了该事件,则当发行者类引发该事件时,会调用其事件处理程序方法。对象一是事件的产生者,或者发送者;对象二是事件的接收者或者订阅者。对象一产生某种消息,需要对象二响应并处理这给消息,这就是事件的本质。原创 2009-08-23 18:11:00 · 932 阅读 · 0 评论 -
OutLookBar控件的使用
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 <!-- /* Sty原创 2009-08-20 18:23:00 · 7284 阅读 · 3 评论 -
简单Notepad代码
一对应的From.cs文件using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows转载 2009-10-13 11:48:00 · 863 阅读 · 0 评论 -
C#界面皮肤的三种加载方法
C#界面皮肤的三种加载方法先把IrisSkin2.dll文件添加到当前项目引用(解决方案资源管理器->当前项目->引用->右键->添加引用。第一种方法: 1. 然后把IrisSkin2.dll文件添加到vc2005的工具箱:右键->选择项->浏览找到IrisSkin2.dll文件,按确定,控件就添加到工具箱中了。然后把工具箱中新添加的 SkinEngine控件拖到当原创 2009-10-14 16:40:00 · 2836 阅读 · 0 评论 -
c#图形创建数据库
C#创建数据库和表格等一:SQL ServerExpress的安装和设置 在装完VS2008后,系统会安装SQL Server Express,但是没有SQL Server Manage StudioExpress,需要手动安装SQLEXPR_CHS.EXE和SQLServer2005_SSMSEE.原创 2010-03-19 09:20:00 · 1393 阅读 · 0 评论 -
DataGridView的使用
DataGridVew的使用方法:一:设置DataGridVew属性 private void CustomizeMyDataGridView() { // 由于我们要自订各个数据列类型,因此必须将 AutoGenerateColumns 属性设定成 False。 DataGridView1.AutoGenerateColumns = false; // 允许手动重新调整数据列的位置原创 2010-03-15 14:09:00 · 3892 阅读 · 1 评论 -
DataGrid的使用
DataGrid 的使用 一:从文本文件中读取数据,并保存到DataSet中 public static DataSet TextFileLoader(string FilePath, string TableName, string[] FieldsInArray) { DataSet ds = new DataSet(); DataTable dt = new DataTable(原创 2010-03-15 11:47:00 · 1015 阅读 · 0 评论 -
c# 操作EXCEL
目前只有部分功能,且在使用时引入Microsoft.Office.Core和Microsoft.Office.Interop.Excel.using System;using System.Collections.Generic;using System.Linq;using System.Text;using System;using Microsoft.Office转载 2009-12-02 10:56:00 · 1320 阅读 · 0 评论 -
结构体中数组的使用
一:对于FIXED数组,如下示例 class Program { unsafe struct EPC1G2_TagID { public short tagDataLen; public fixed byte aucTagData[32]; };原创 2009-11-21 10:18:00 · 3185 阅读 · 0 评论 -
C# 网络异步传输
一:声明 using System.Threading; using System.Net.Sockets; TcpClient clientsocket = null; NetworkStream networkStream = null;二:建立链接 try { clientsocket = new Tcp原创 2009-11-03 11:45:00 · 1175 阅读 · 0 评论 -
c# SQL数据库远程连接及配置方法
一:C# 连接SQL数据库Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;Data Source=190.190.200.100,1433;Network Library=DBMSSOCN;Initial Catalog=myDataBase;Us原创 2009-11-05 11:06:00 · 1281 阅读 · 0 评论 -
C#事务处理
一:事物的特点(ACID)1:原子性,要么全部执行,要么全部不执行2:一致性3:隔离性4:持久性二:操作事务的典型步骤1:创建一个Connection对象,建立与数据库的连接 SqlConnection myConnection = new SqlConnection(connectString); myConnection.Open();2:使原创 2009-11-05 17:40:00 · 1574 阅读 · 3 评论 -
同步队列
同步队列原创 2010-11-24 23:20:00 · 523 阅读 · 0 评论