![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C#
fanweiwei
.NET 软件开发,司职 项目经理
展开
-
动态实例化一个枚举类型
前些天在做类型发射的时候写道枚举反射,怎么也实例化不了一个枚举值,上网找了一下没发现!郁闷了老半天!于是去找原因结果我发现原来枚举类型发射实例化很简单: Enum.Parse(type, value) 就可以了。原来枚举是微软的基础类,我还把它当成是衍生类呢,真是糊涂呵呵!原创 2006-09-01 09:59:00 · 2423 阅读 · 0 评论 -
Attribute的基本概念
经常有朋友问,Attribute是什么?它有什么用?好像没有这个东东程序也能运行。实际上在.Net中,Attribute是一个非常重要的组成部分,为了帮助大家理解和掌握Attribute,以及它的使用方法,特地收集了几个Attribute使用的例子,提供给大家参考。在具体的演示之前,我想先大致介绍一下Attribute。我们知道在类的成员中有property成员,二者在中文中都做属性解释,那么转载 2007-08-16 15:33:00 · 1140 阅读 · 0 评论 -
构建安全的 Web Services
构建安全的 Web Services 更新日期: 2004年04月12日本页内容 本模块内容 目标 适用范转载 2007-08-16 10:34:00 · 1890 阅读 · 0 评论 -
ADO.NET 2.0中新的事务处理机制的引入带来前所未有的新体验(给所有不了解TransactionScope的朋友,以及还在用SqlTransaction的朋友)
ADO.NET 2.0中新的事务处理机制的引入带来前所未有的新体验(给所有不了解TransactionScope的朋友,以及还在用SqlTransaction的朋友) 由于在ADO.NET 1.1中的固定的事务处理方式,让我直到今天才了解到ADO.NET 2.0对事务新的理解与重新编写的事务机制,不但包含了数据库的事务支持,而且还被应用于其它如:文件IO处理、消息机制等可以应用原创 2007-05-21 13:57:00 · 2571 阅读 · 4 评论 -
解密微软中间语言:MSIL Xinsoft
在.Net框架中,公共语言基础结构使用公共语言规范来绑定不同的语言。通过要求不同的语言至少要实现公共类型系统(CTS)包含在公共语言规范中的部分,公共语言基础结构允许不同的语言使用.Net框架。因此在.Net框架中,所有的语言(C#,VB.Net,Effil.Net等)最后都被转换为了一种通用语言:微软中间语言(MSIL)。 MSIL是将.Net代码转化为机器语言的一个中间过程。它是一种介于高级语转载 2007-05-30 09:40:00 · 2257 阅读 · 1 评论 -
.net执行sql脚本
下面是使用C#调用cmd来执行osql实现脚本的执行。using System;using System.Data;using System.Collections;using System.Xml;using System.IO;using System.Text;using System.Diagnostics;namespace ZZ{public class ZZConsole{[STAT转载 2007-09-02 15:20:00 · 1205 阅读 · 0 评论 -
XML中的XPath介绍
之所以要引入XPath的概念,目的就是为了在匹配XML文档结构树时能够准确地找到某一个节点元素。可以把XPath比作文件管理路径:通过文件管理路径,可以按照一定的规则查找到所需要的文件;同样,依据XPath所制定的规则,也可以很方便地找到XML结构文档树中的任何一个节点. 不过,由于XPath可应用于不止一个的标准,因此W3C将其独立出来作为XSLT的配套标准颁布,它是XSLT以及我们后面要原创 2007-06-05 20:52:00 · 2086 阅读 · 1 评论 -
C#写的驱动摄像头的程序
在国外网站上找到一个用C#写的驱动摄像头的程序。经改造和调试,如下:(1)安装摄像头后,一般可以找到一个avicap32.dll文件(2)这是一个关于摄像头的类:using System;using System.Runtime.InteropServices;namespace webcam{ /// /// avicap 的摘要说明。 /// public class sh转载 2007-09-11 15:35:00 · 8074 阅读 · 4 评论 -
钩子原理
Windows系统是建立在事件驱动的机制上的,说穿了就是整个系统都是通过消息的传递来实现的。而钩子是Windows系统中非常重要的系统接口,用它可以截获并处理送给其他应用程序的消息,来完成普通应用程序难以实现的功能。钩子可以监视系统或进程中的各种事件消息,截获发往目标窗口的消息并进行处理。这样,我们就可以在系统中安装自定义的钩子,原创 2007-09-12 11:35:00 · 1318 阅读 · 0 评论 -
DataGridView重绘代码参考
1、CellFormatting事件,一般重绘单元格属性。 private Bitmap highPriImage; private Bitmap mediumPriImage; private Bitmap lowPriImage;private void dataGridView1_CellFormatting(object sender, System.Wi转载 2007-10-31 10:47:00 · 1636 阅读 · 1 评论 -
DataGridView 单元格验证
定义单元格验证要求:验证错误后焦点不离开。实现:单元格的验证可以使用dgv_details_CellValidating事件。验证不通过时调用e.Cancel = true;终止事件链,单元格将保持编辑状态。调用dgv_details.CancelEdit();可以使单元格的内容会滚到修改前的值。使用System.Windows.Forms.SendKeys.Send("^a");将全选单元格的内转载 2007-11-04 16:29:00 · 2868 阅读 · 0 评论 -
设计模式面面观(9):适配器模式(Adapter Pattern)-结构型模式
适配器模式(Adapter)-结构型模式 适配器模式,对刚刚接触设计模式的朋友来说是一个即陌生有熟悉的模式,听起来很矛盾对吧,在我们的编程中很多时候我们都用到了这个模式,但您也许没有想起来,等我们学习完后你会惊奇的说声:啊!原来我一直在用这个模式啊。其实在我们生活中处处都有这种模式的存在,小到一个手机的万能充电器(不要告诉我你没见过这玩意)都存在这一个原则,在不破坏或更改原有实体的原创 2007-12-25 09:15:00 · 1328 阅读 · 0 评论 -
设计模式面面观(10):桥接模式(Bridge Pattern)-结构型模式
桥接模式(Bridge)-结构型模式 桥接模式是将抽象化与实现进行脱藕的一种模式,使一个类实例化和他的行为解耦合,让他们可以有自己独立的变化空间,而不会因为类行为过多依赖类本身或类本身被类行为牵制,带来的变化受制的问题。这里需要主意的是桥接模式是将类和类行为现实减弱耦合关联并不一定要完全解耦合,当然如果可以的话完全解耦合的设计方案更优。 在设计时的运用请看下面的UML图原创 2008-01-07 09:33:00 · 2378 阅读 · 0 评论 -
手把手一步一教你如何利用Visual Studio创建自己的模板
第一步:打开Visual Studio (这里我虽然用的是Visual Studio 2008,但是Visual Studio 2005也同样适用,而且创建方法都是一样的) (Figure 1)第二步: 创建一个新的项目并且命名为MyTemplate(最转载 2008-04-02 09:35:00 · 1610 阅读 · 0 评论 -
变相实现DataView Top *** 功能
今天一个同事问我Datatable中怎么实现SQL中的 Top功能,我想当然的说用 DataView的筛选中能(rowfilter方法),但自己试验了一下发现不能直接调用,呵呵只好间接实现,既然rowfilter是封装的SQL语句的Where子句那就从这里入手 /// /// Gets the latest comments. /// /// The comm原创 2008-06-02 15:16:00 · 1834 阅读 · 0 评论 -
SVN客户端Visual Studio 插件
最新版SVN客户端Visual Studio 插件,需要安装TortoiseSVN-1.4.8.12137-win32-svn-1.4.6.rar官方介绍:http://ankhsvn.open.collab.net/AnkhSVN is a Subversion SourceControl Provider for Visual Studio. The software allo原创 2009-05-04 08:39:00 · 9603 阅读 · 0 评论 -
C# Enum设计和使用的相关技巧 【转】
Enum的运算通常涉及到位运算(AND、OR、XOR),按位运算, 常使用FlagsAttribute 自定义属性定义。FlagsAttribute 和 Enum 的准则:只有要对数值执行按位运算(AND、OR、XOR)时才对枚举使用 FlagsAttribute 自定义属性。 用 2 的幂(即 1、2、4、8 等)定义枚举常量。这意味着组合的枚举常量中的各个标志都不重叠。 请考虑为常用标志组合创转载 2007-04-10 13:17:00 · 1853 阅读 · 0 评论 -
国外C#开源项目(转)
Open Source Aspect-Oriented Frameworks in C# AspectSharp - Aspect# (pronunced as AspectSharp) is a free AOP ( Aspect Oriented Programming ) framework for the .NET Framework, it uses Dynamic P转载 2007-03-09 10:00:00 · 8343 阅读 · 1 评论 -
NUnit详细使用方法
NUnit详细使用方法 Posted on 2005-06-20 17:01 LIVE 阅读(12369) 评论(52) 编辑 收藏 引用 网摘 所属分类: 框架&库 、敏捷软件开发 <!--<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"xmlns:dc="http://purl.org/dc转载 2007-03-01 09:25:00 · 1218 阅读 · 0 评论 -
关于数据处理相关的优化
一、 SqlDataRead和Dataset的选择Sqldataread优点:读取数据非常快。如果对返回的数据不需做大量处理的情况下,建议使用SqlDataReader,其性能要比datset好很多。缺点:直到数据读完才可close掉于数据库的连接(SqlDataReader 读数据是快速向前的。SqlDataReader 类提供了一种读取从 SQL Serv原创 2006-10-06 13:54:00 · 732 阅读 · 0 评论 -
Data Encryption Standard(DES) 数据加密标准算法描述
Data Encryption Standard(DES) 数据加密标准算法描述 一、算法介绍 DES算法是一种用56位密钥来加密64位数据的对称密钥算法。DES算法的入口参数有三个:Key、Data、Mode。其中Key为8个字节共64位,是DES算法的工作密钥;Data也为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密。 二原创 2006-10-09 10:48:00 · 997 阅读 · 0 评论 -
编写通用数据访问
引言在负责咨询工作的过去 6 年中,我曾多次听说关于数据访问和操作方面的问题,它时刻困扰着用户:“如何编写应用程序,以便只需对其进行很少的改动或不进行改动即可使用数据库服务器 x、y 和 z?”由于知道数据访问层仍然是现代应用程序的最关键部分,并且通常是经验不足的开发人员的头号敌人,因此我的第一反应始终是:根本办不到! 面对着人们惶惶不安的面孔以及“使用 Microsoft 在 ADO 中原创 2006-10-20 09:31:00 · 1161 阅读 · 1 评论 -
XPath 轴
The XML Example DocumentXML举例文档We will use the following XML document in the examples below.我么将使用该XML文档进行下面的举例说明 Harry Potter 29.99 Learning XML 39.95XPath AxesXPath轴翻译 2006-10-19 13:48:00 · 1617 阅读 · 0 评论 -
XPath运算符
XPath OperatorsBelow is a list of the operators that can be used in XPath expressions: Operator Description Example Return value翻译 2006-10-19 13:52:00 · 1053 阅读 · 0 评论 -
XPath语法
XPath uses path expressions to select nodes or node-sets in an XML document. The node is selected by following a path or steps.XPath使用路径表达式来选择XML文档的节或是节集。顺着路径或步骤来选择节。The XML Example DocumentXML实翻译 2006-10-19 13:40:00 · 1158 阅读 · 0 评论 -
XPath实例
The XML Example DocumentWe will use the following XML document in the examples below.我们将使用下面这个XML文档来进行实例"books.xml": Everyday Italian Giada De Laurentiis 2005 30.00 Harry翻译 2006-10-19 13:53:00 · 1689 阅读 · 0 评论 -
缓存类的实现(C#)
小弟最近在编写一个O/RM组件(当然功能还是相当少的)。大家都应该清楚把实体对象更新到数据库必须经过一系列的转换;特别是SQL语句的生成是比较费资源的,因为中间处里的东西实大是太多了。在设计的过程中我就想如果一个对象插入数据库后把相应的Command保存在缓存中;下一次同一个类型的对象做这个操作时检测一下缓存如果有就直接拿来用这样效率应该会高些。抱着这种想法就开始设计了(不过心里还是上上下下的,毕转载 2006-10-23 10:30:00 · 1297 阅读 · 0 评论 -
抽象类与接口
抽象类和接口在定义上和功能上有很多相似的地方,具体在程序中使用抽象类还是接口需要比较抽象类和接口的具体差别。抽象类:一种不能实例化而必须从中继承的类,抽象类可以提供实现,也可以不提供实现 子类只能从一个抽象类继承 抽象类应主要用于关系密切的对象 如果要设计大的功能单元,则使用抽象类。 如果预计要创建组件的多个版本,则创建抽象类原创 2006-10-23 10:33:00 · 1151 阅读 · 1 评论 -
ASP.NET分页控检BATE版发布
下载地址:http://www.tomore.com/dispdocnew.php?id=42193原创 2006-10-25 17:43:00 · 1030 阅读 · 0 评论 -
委托(二)-协变和逆变
委托中的协变和逆变概诉: 在将委托方法与委托签名匹配时协变和逆变为委托提供了一定程度的灵活性1.什么时协变当委托方法的返回类型具有的派生程度比委托签名更大时,就称为协变委托方法,通俗的将就是委托返回的类型有子类的签名就称为协变委托,所以可对其进行隐式转换,那么协变使得创建可被类和派生类同时使用的委托方法成为可能。Dome:一下实例可清晰的看出一个委托可被类和原创 2006-11-01 09:28:00 · 1197 阅读 · 0 评论 -
委托(一)-委托概诉
委托1. 什么是委托委托是一种引用方法的类型,一旦为委托分配了方法,委托将与该方法具有完全相同的行为。委托方法的使用可以像其他任何方法一样,具有参数和返回值,其实委托类似与C++中的函数指针,但委托是类型安全和可靠的,委托是事件的基础2. 委托概诉l 委托类似于 C++ 函数指针,但它是类型安全的l 委托允许原创 2006-10-31 09:13:00 · 1159 阅读 · 0 评论 -
委托(三)-多播
委托中的多播委托是可以同时执行多个委托方法,设想一下你在完成一项业务功能时反复的在调用相托的一个委托,这时一件多么繁琐的事情,C#中的委托支持把这些委托合并起来调用一次即可这就称为多播委托,多播支持委托中的方法的任意添加和删减(+和-),为什么它可以做到呢?因为多播委托是一个派生于System.MulticastDelegate的类,它派生于基类System.Delegate。Sys原创 2006-11-06 10:55:00 · 1269 阅读 · 0 评论 -
C#小技巧-将ArrayList转化成指定类型的数组形式
ArrayList members = new ArrayList();object[] values= members.ToArray()(ClassMember[])values//错误ClassMember[] values=members.ToArray(typeof(ClassMermber)) as ClassMember[]//真确原创 2006-11-29 17:45:00 · 3056 阅读 · 0 评论 -
socket异步处理问题
由于一个项目要和第三方软件做接口,第三方软件是Unix的操作系统,所以用了Socket来传输数据。具体结构是这样的:本项目作为服务器端,第三方软件是客户端,并且有多个客户端。通常情况下,要开多个线程来处理多个客户端,并且一个客户端要占用一个端口,每个客户端在访问服务端时,服务器端要找到当前空闲的端口返回给客户端进行调用。msdn上提供了这种的解决方案:http://www.microsoft.co转载 2006-07-29 17:37:00 · 902 阅读 · 0 评论 -
计算时间差C#版
protected string GetDiffTime(DateTime beginTime, DateTime endTime) { string strResout = "{0}{1}前"; //获得2时间的时间间隔秒计算 TimeSpan span = endTime - beginTime;原创 2009-05-12 23:08:00 · 5474 阅读 · 1 评论