03 2007 档案

摘要:ASP.NET2.0雷霆之怒盗链者的祝福 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/ 时间:2007.3.28所谓盗链就是指其他网站把我们站点的文件链接帖到他们站上,这样白白占用我们的带宽。访问对于网站盗链行为,是非常不道德的。要实现防盗链,我们就得在IIS处理URL时拦截。效果图:未加防盗链之前:hm是我的机器名,用http://hm/myweb/default.aspx和http://localhost/myweb/default访问结果一样。这幅图片是任人宰割的。加了防盗链之后虽然还是同一个网站但是http://hm/myweb/default.a 阅读全文
posted @ 2007-03-28 21:54 leonardleonard 阅读(127) 评论(0) 推荐(0)
摘要:ASP.NET2.0轻松搞定统计图表 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/ 时间:2007.3.27本文讲述如何绘制条形图,折线图,柱形图,面积图等常见图形。效果图:手把手教程:原理:OWC是Office Web Compent的缩写,即Microsoft的Office Web组件,它为在Web中绘制图形提供了灵活的同时也是最基本的机制。在一个intranet环境中,如果可以假设客户机上存在特定的浏览器和一些功能强大的软件(如IE6和Office 2000/XP/2003),那么就有能力利用Office Web组件提供一个交互式图形开发环 阅读全文
posted @ 2007-03-27 22:16 leonardleonard 阅读(103) 评论(0) 推荐(0)
摘要:说明:准备出一个系列,所谓精髓讲C#语言要点。这个系列没有先后顺序,不过尽量做到精。可能会不断增删整理,本系列最原始出处是csdn博客,谢谢关注。C#精髓第四讲 GridView 72般绝技作者:清清月儿 主页:http://blog.csdn.net/21aspnet/ 时间:2007.3.24-26为了写本文,又搭工又搭料,累的2天2宿没睡觉,这篇文章实在是耗费我太多的心血,版权永远属于CSDN社区的清清月儿,请不要试图修改本文,破坏全文的完整性,希望您尊重我的劳动成果!快速预览:GridView无代码分页排序GridView选中,编辑,取消,删除GridView正反双向排序GridVie 阅读全文
posted @ 2007-03-25 04:36 leonardleonard 阅读(120) 评论(0) 推荐(0)
摘要:说明:准备出一个系列,所谓精髓讲C#语言要点。这个系列没有先后顺序,不过尽量做到精。可能会不断增删整理,本系列最原始出处是csdn博客,谢谢关注。C#精髓第三讲 C#泛型有什么好处作者:清清月儿 主页:http://blog.csdn.net/21aspnet/ 时间:2007.3.24 关于object类型:1.object类型可以来引用任何类型的实例;2.object类型可以存储任何类型的值;3.可以定义object类型的参数;4.可以把object作为返回类型。但是--这样做有很大的问题1.会因为程序员没有记住使用的类型而出错,造成类型不兼容;2.值类型和引用类型的互化即装箱拆箱使系统性 阅读全文
posted @ 2007-03-25 04:35 leonardleonard 阅读(143) 评论(0) 推荐(0)
摘要:“三层结构”是“外观层”、“商业逻辑层”、“数据库层”假设以这样的结构制作一个留言板,那么应该是: # 留言板页面的外观代码都存放在 .aspx 文件中 # 当用户点击页面上的提交按钮时,先将文本信息传递给一个 LeaveWord 类对象 (LeaveWord 类的定义被封装到“商业逻辑层”) # 之后让这个对象执行 Post() 将留言信息发送到数据库用一个简单的代码就是: textarea id="Content" runat="server"/textarea input type="button" id="Post" runat="server" / // -------- 阅读全文
posted @ 2007-03-24 17:23 leonardleonard 阅读(151) 评论(0) 推荐(0)
摘要:一个示例: classAppTest { privateExcel.ApplicationClass_x; publicstaticvoidMain0() { AppTesta=newAppTest(); a._x=newExcel.ApplicationClass(); a._x.UserControl=false; for(inti=0;i4;i++) { a.SaveToXls("D:\\test\\"+i+".xls");//本例是在D盘下建立的test文件夹 } a._x.Quit(); System.Runtime.InteropServices.Marshal.Release 阅读全文
posted @ 2007-03-24 17:20 leonardleonard 阅读(541) 评论(0) 推荐(0)
摘要:if(fileupload.PostedFile!=null){ //addto为要添加的属性,aboutfile为文件说明string nam = fileupload.PostedFile.FileName ;//取得文件名(抱括路径)里最后一个"."的索引int i= nam.LastIndexOf(".");//取得文件扩展名string newext =nam.Substring(i);//这里我自动根据日期和文件大小不同为文件命名,确保文件名不重复DateTime now = DateTime.Now; string newname=now.DayOfYear.ToString() 阅读全文
posted @ 2007-03-24 17:19 leonardleonard 阅读(132) 评论(0) 推荐(0)
摘要:前两年写的东西,现在整理一下发出来!以前公司需要做WebService,并且对WebService的SoapHeader进行加密,所以就写了这么个东东!使用这个类,需要密钥管理!为了保证数据的安全性往往要对数据进行加密,但是加密的缺点之一,就是影响程序的运行效率,所以,当时我的思路是只对用户的登录信息(用户名,密码)进行加密!数据用明文传输,用户信息验证没有通过的情况下, 不进行数据传输。 实际在网络通讯中,使用密钥匙的方式并非无懈可击,如果黑客可以捕捉到用密钥加密的,用户验证信息,然后,做个模拟请求,向提供WebService的服务器发请求,还是可以获得请求数据!所以,我又使用了IP或者域名 阅读全文
posted @ 2007-03-24 17:16 leonardleonard 阅读(193) 评论(0) 推荐(0)
摘要:/* FTPFactory.cs Better view with tab space=4 Written by Jaimon Mathew (jaimonmathew@rediffmail.com) Rolander,Dan (Dan.Rolander@marriott.com) has modified the download method to cope with file name with path information. He also provided the XML comments so that the library provides Intellisense des 阅读全文
posted @ 2007-03-24 17:15 leonardleonard 阅读(130) 评论(0) 推荐(0)
摘要:类(class)是C#类型中最基础的类型。类是一个数据结构,将状态(字段)和行为(方法和其他函数成员)组合在一个单元中。类提供了用于动态创建类实例的定义,也就是对象(object)。类支持继承(inheritance)和多态(polymorphism),即派生类能够扩展和特殊化基类的机制。 使用类声明可以创建新的类。类声明以一个声明头开始,其组成方式如下:先是指定类的特性和修饰符,后跟类的名字,基类(如果有的话)的名字,以及被该类实现的接口名。声明头后面就是类体了,它由一组包含在大括号({})中的成员声明组成。 下面是一个名为Point的简单类的声明: public class Point { 阅读全文
posted @ 2007-03-24 17:12 leonardleonard 阅读(183) 评论(0) 推荐(0)
摘要:码输入是一种常用的控件,我记得第一次看见这种控件是在Visual FoxPro中!感觉功能强,不错。现在用C#开发ASP.NET应用程序也需要用到这种输入的控件,便琢磨着自己做一个。但是由于Visual FoxPro中的掩码文本框功能太强了,一时还不敢去做。网上也有一些自制的如:http://www.weste.net/2004/11-25/09162561988.html,但是感觉功能都不很适合。后来在http://www.stedy.com上看到了他们做的掩码文本框,感觉这种方式在Web应用上很适合,就把客户端代码down下来了!(stedy software 作的是产品,要花钱!而且很贵 阅读全文
posted @ 2007-03-24 17:10 leonardleonard 阅读(342) 评论(0) 推荐(0)
摘要:using System; using System.IO; using System.Security.Cryptography; namespace Vavic { /// summary /// Security 的摘要说明。 /// /summary public class Security { const string KEY_64 = "VavicApp"; const string IV_64 = "VavicApp"; //注意了,是8个字符,64位 public Security() { // // TODO: 在此处添加构造函数逻辑 // } public sta 阅读全文
posted @ 2007-03-24 17:08 leonardleonard 阅读(167) 评论(0) 推荐(0)
摘要:1 在工程中引用Microsoft.VisualBasic.dll 一般此文件在.net框架环境目录中如C:\ WINNT \Microsoft.NET \Framework \v1.1.4322 \Microsoft.VisualBasic.dll。 2 使用方法 Microsoft.VisualBasic.Strings.StrConv( “instr”,Microsoft.VisualBasic.VbStrConv.TraditionalChinese, System.Globalization.CultureInfo.CurrentCulture.LCID); * 该方法的使用可以在m 阅读全文
posted @ 2007-03-24 17:07 leonardleonard 阅读(142) 评论(0) 推荐(0)
摘要:using System; using System.Text; using System.IO; using System.Net; using System.Net.Sockets; using System.Collections; namespace lion_office.Data.Library.MailClass { public class ESmtpMail { private string enter="\r\n"; /// summary /// 设定语言代码,默认设定为GB2312,如不需要可设置为"" /// /summary public string Ch 阅读全文
posted @ 2007-03-24 17:06 leonardleonard 阅读(157) 评论(0) 推荐(0)
摘要:using System; using System.Xml; using System.Text; using System.Net; using System.IO; using System.Collections; using System.Text.RegularExpressions; public class App { public static void Main() { string strCode; ArrayList alLinks; Console.Write("请输入一个网页地址:"); string strURL = Console.ReadLine(); if( 阅读全文
posted @ 2007-03-24 17:04 leonardleonard 阅读(220) 评论(0) 推荐(0)
摘要:using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using System.Messaging ; using System.Threading ; namespace WinMsmq { /// summary /// Form1 的摘要说明。 /// /summary public class Form1 : System.Windows.Forms.Form 阅读全文
posted @ 2007-03-24 17:03 leonardleonard 阅读(259) 评论(0) 推荐(0)
摘要:GPRS上网,好象很多内容都是要付费的,就只有下载铃声,什么图片的,没劲!最好能用手机看看小说,网络上好象没有免费的WAP小说,办公室的小妹妹也想用手机看小说,看来只有自己做一个了。 都说JAVA是开发WAP的利器,不过WAP需要这个“码”转到那个“码”,真是麻烦,算了,看一下能不能用C#做一个WAP小站。 想来也很简单的,WAP就是用UTF8编码嘛,好象还有什么WML之类的,WML在网上查查资料,就和XML差不多,平时用XML也蛮多的,WML也就简单了,C#直接可以设RESPONSE的编码的,看来有戏了,先写一个“Hello 老婆“吧, //设置ContentType类型 Response. 阅读全文
posted @ 2007-03-24 17:01 leonardleonard 阅读(256) 评论(0) 推荐(0)
摘要:当我要写一个MD5算法的程序时,发现中英文的语言描述都有一些不确切的地方,某些个细节 讲得不清楚,或者说很费解。最后不得不拿出C语言的源程序来调试,这对于理解算法是很不 利的。于是就总结了一下我摸索到的一些要点。 1.来历 MD5的全称是message-digest algorithm 5(信息-摘要算法,在90年代初由mit laboratory for computer science和rsa data security inc的ronald l. rivest开发出来, 经md2、md3和md4发展而来。http://www.ietf.org/rfc/rfc1321.txt,是一份最权威 阅读全文
posted @ 2007-03-24 17:00 leonardleonard 阅读(190) 评论(0) 推荐(0)
摘要:第一步:在Visual Studio 2005中编写代码 using System; using System.Data; using System.Data.Sql; using System.Data.SqlServer; using System.Data.SqlTypes; public partial class Triggers { // Enter existing table or view for the target and uncomment the attribute line // [SqlTrigger (Name="myTrigger", Target="Tabl 阅读全文
posted @ 2007-03-24 16:58 leonardleonard 阅读(193) 评论(0) 推荐(0)
摘要://本周是本年第几周 private int DatePart(System.DateTime dt) { int weeknow = Convert.ToInt32(dt.DayOfWeek);//今天星期几 int daydiff = (-1) * (weeknow+1);//今日与上周末的天数差 int days = System.DateTime.Now.AddDays(daydiff).DayOfYear;//上周末是本年第几天 int weeks = days/7; if(days%7 != 0) { weeks++; } //此时,weeks为上周是本年的第几周 return ( 阅读全文
posted @ 2007-03-24 16:56 leonardleonard 阅读(164) 评论(0) 推荐(0)
摘要:在写C#程序时,string和byte[]之间的转换比较烦,在移植一些老程序时感觉很不好。我在C#中使用DES和TripleDES时移植一块老代码时也遇到了同样的情况。为了下次不为同样的事情烦恼,就写了下面的帮助类。 主要实现了以下的函数 代码中出现的Sidle是我的网名。 /* * @Author WuErPing * @Version 1.0 * @Date 2004/11/30 * @Description: */ using System; using System.Text; namespace SidleHelper { /// summary /// Summary desc 阅读全文
posted @ 2007-03-24 16:55 leonardleonard 阅读(186) 评论(0) 推荐(0)
摘要:using System; using System.Collections; public class Nevermore60Customer:Customer { public override string GetFunnyString() { return "Nevermore60.Nevenmore!"; } -------------------------------------------------------------------------------- public class Customer { public virtual string GetFunnyStri 阅读全文
posted @ 2007-03-24 16:54 leonardleonard 阅读(191) 评论(0) 推荐(0)
摘要:private void Form1_DragEnter(object sender, System.Windows.Forms.DragEventArgs e) { if (e.Data.GetDataPresent(DataFormats.FileDrop)) e.Effect = DragDropEffects.Link; else e.Effect = DragDropEffects.None; } private void Form1_DragDrop(object sender, System.Windows.Forms.DragEventArgs e) { //其中label1. 阅读全文
posted @ 2007-03-24 16:53 leonardleonard 阅读(128) 评论(0) 推荐(0)
摘要:Code List: ------------------------------------------------------------------------- /***************************************************************** ** File Name: frmMain.cs ** Copyright (c) 1999 -2003 ** Creator: FirePhoenix ** Created Date: 2004-11-13 15:24 ** Modifier: ** Modify Date: ** Descr 阅读全文
posted @ 2007-03-24 16:52 leonardleonard 阅读(316) 评论(0) 推荐(0)
摘要:C# 出来也有些日子了,最近由于编程的需要,对 C# 的类型转换做了一些研究,其内容涉及 C# 的装箱/拆箱/别名、数值类型间相互转换、字符的 ASCII 码和 Unicode 码、数值字符串和数值之间的转换、字符串和字符数组/字节数组之间的转换、各种数值类型和字节数组之间的转换、十六进制数输出以及日期型数据的一些转换处理,在这里与大家分享—— 1. 装箱、拆箱还是别名   许多 C#.NET 的书上都有介绍 int - Int32 是一个装箱的过程,反之则是拆箱的过程。许多其它变量类型也是如此,如:short - Int16,long - Int64 等。对于一般的程序员来说,大可 阅读全文
posted @ 2007-03-24 16:51 leonardleonard 阅读(171) 评论(0) 推荐(0)
摘要:接口把一组公共方法和属性组合起来 ,以封装特定功能的一个集合。通过类可以实现接口,这样类就支持接口所有的属性和方法。 接口只能对方法和属性进行定义,不能实现,只能由支持它的类实现。接口中的成员不能用访问符修饰,如public,private,它的成员默认为public 定义接口比较简 单 public interface IMyinterface { void Dosomething();//方法成员 int MyAttribute//属性成员 { get;//这里只能定义这个属性是否为只读 set; } } 接口和抽象类比较相似,但一个类只能派生于一个抽象类,不过可以实现N个接口。 举个例子 阅读全文
posted @ 2007-03-24 16:49 leonardleonard 阅读(128) 评论(0) 推荐(0)
摘要:可以引用的COM组件列表,发现里面有一个名为Microsoft CDO For Exchange 2000 Library的COM组件,就是这个,我们可以用它来连接SMTP Server,使用用户名/密码验证发送邮件。 下面是实现的一个例子: Smtp Server使用的Smtp-SRV,登陆用户名是David Euler,发送邮箱是davidEuler@test.com,发送到test@test.com/ 1).资源管理器里面,添加引用(reference),添加Microsoft CDO For Exchange 2000 Library的COM组件; 2).编辑用户界面如上图,依次添加F 阅读全文
posted @ 2007-03-24 16:48 leonardleonard 阅读(610) 评论(0) 推荐(0)
摘要:public class XmlControl { protected string strXmlFile; protected XmlDocument objXmlDoc = new XmlDocument(); public XmlControl(string XmlFile) { // // TODO: 在这里加入建构函式的程序代码 // try { objXmlDoc.Load(XmlFile); } catch (System.Exception ex) { throw ex; } strXmlFile = XmlFile; } public DataView GetData(str 阅读全文
posted @ 2007-03-24 16:47 leonardleonard 阅读(112) 评论(0) 推荐(0)
摘要:由于Content, Title中可能包含单引号,直接使用sql的insert命令会报错,对此有两种处理方法,一种将单引号替换成两个单引号,第2种方法是使用存储过程。 表myBBS的格式定义如下: CREATE TABLE [dbo].[myBBS] ( [ID] [bigint] IDENTITY (1, 1) NOT NULL , [Title] [char] (160) COLLATE Chinese_PRC_CI_AS NULL , [Author] [char] (20) COLLATE Chinese_PRC_CI_AS NULL , [Date_of_Created] [date 阅读全文
posted @ 2007-03-24 16:45 leonardleonard 阅读(234) 评论(0) 推荐(0)
摘要:获取文件的版本信息: FileVersionInfo myFileVersionInfo1 = FileVersionInfo.GetVersionInfo("D:\\TEST.DLL"); textBox1.Text="版本号: " + myFileVersionInfo1.FileVersion; 更改文件属性,删除只读文件: 下例欲将E:\test.txt文件拷贝至D:\tmp\test.txt,但D:\tmp\test.txt已经存在。 //File.Copy(sourceFile,destinationFile,true); 用来拷贝文件 //当destinationFile已经存在 阅读全文
posted @ 2007-03-24 16:44 leonardleonard 阅读(149) 评论(0) 推荐(0)
摘要:XPButton.cs代码 using System; using System.Windows; using System.Drawing; using System.Drawing.Drawing2D; using System.Windows .Forms ; namespace XPCtrl { /// summary /// XPButton 的摘要说明。 /// /summary public class XPButton:System.Windows.Forms.Button { private bool mouseover=false; public XPButton( 阅读全文
posted @ 2007-03-24 16:42 leonardleonard 阅读(651) 评论(0) 推荐(0)
摘要:private AxSHDocVw.AxWebBrowser axWebBrowser1; private System.Windows.Forms.Button button1; private System.Windows.Forms.Label label1; private AxShockwaveFlashObjects.AxShockwaveFlash axShockwaveFlash1; System.Threading.Thread thread1=new System.Threading.Thread(new System.Threading.ThreadStart(threa 阅读全文
posted @ 2007-03-24 16:41 leonardleonard 阅读(467) 评论(0) 推荐(0)
摘要:在多线程编程中,我们经常要使用数据共享.C#中是如何实现的呢?很简单,只要把你要共享的数据设置成静态的就可以了.关键字static .如下: static Queue q1=new Queue(); static int b=0; 在这里我定义了一个整形变量b和队列q1. 接下去就可以创建多线程代码了.如下: MyThread myc; Thread[] myt; myt=new Thread[10]; myc=new MyThread(); for(int i=0;i10;++i) { myt[i]=new Thread(new ThreadStart(myc.DoFun)); // Sy 阅读全文
posted @ 2007-03-24 16:39 leonardleonard 阅读(778) 评论(0) 推荐(0)
摘要:在.net中提供了一些类来显示和控制Windows系统上的服务,并可以实现对远程计算机服务服务的访问,如System.ServiceProcess命名空间下面的ServiceController 类,System.Management下面的一些WMI操作的类。虽然用ServiceController可以很方便的实现对服务的控制,而且很直观、简洁和容易理解。但是我认为他的功能同通过WMI来操作服务相比,那可能就有些单一了,并且对多个服务的操作可能就比较麻烦,也无法列出系统中的所有服务的具体数据。这里要讲的就是如何使用System.Management组件来操作远程和本地计算机上的服务。 WMI作 阅读全文
posted @ 2007-03-24 16:38 leonardleonard 阅读(226) 评论(0) 推荐(0)
摘要:a 警铃 \b 退格 \f 换页 \n 新的一行 \r 回车 \t 水平制表符 \v 垂直制表符 \0 空 \' 单引号 \'' 双引号 \\ 反斜线符号\r\n回车换行 阅读全文
posted @ 2007-03-24 16:37 leonardleonard 阅读(150) 评论(0) 推荐(0)
摘要:下面的示例显示如何使用 Socket 类向 HTTP 服务器发送数据和接收响应。 [C#] public string DoSocketGet(string server) { //Sets up variables and a string to write to the server Encoding ASCII = Encoding.ASCII; string Get = "GET / HTTP/1.1\r\nHost: " + server + "\r\nConnection: Close\r\n\r\n"; Byte[] ByteGet = ASCII.GetBytes(Get); 阅读全文
posted @ 2007-03-24 16:35 leonardleonard 阅读(162) 评论(0) 推荐(0)
摘要:参考了一些文章,整理了一下,大家可以直接拿去用吧,其实自从有了FreeTextBox这样的东东出现,UBB已经渐渐淡出江湖了。 using System; using System.Text; using System.Text.RegularExpressions; namespace Test.Com { /// summary /// 功能:UBB代码 /// 作者:Rexsp /// 日期:2004-4-6 /// /summary public class UBB { #region 构造函数 public UBB() { // // TODO: 在此处添加构造函数逻辑 // 阅读全文
posted @ 2007-03-24 16:33 leonardleonard 阅读(149) 评论(0) 推荐(0)
摘要:事件(event)是一个非常重要的概念,我们的程序时刻都在触发和接收着各种事件:鼠标点击事件,键盘事件,以及处理操作系统的各种事件。所谓事件就是由某个对象发出的消息。比如用户按下了某个按钮,某个文件发生了改变,socket上有数据到达。触发事件的对象称作发送者(sender),捕获事件并且做出响应的对象称作接收者(receiver),一个事件可以存在多个接受者。 在异步机制中,事件是线程之间进行通信的一个非常常用的方式。比如:用户在界面上按下一个按钮,执行某项耗时的任务。程序此时启动一个线程来处理这个任务,用户界面上显示一个进度条指示用户任务执行的状态。这个功能就可以使用事件来进行处理。可以将 阅读全文
posted @ 2007-03-24 16:33 leonardleonard 阅读(142) 评论(0) 推荐(0)
摘要:.NET将关于多线程的功能定义在System.Threading名字空间中。因此,要使用多线程,必须先声明引用此名字空间(using System.Threading;)。 即使你没有编写多线程应用程序的经验,也可能听说过“启动线程”“杀死线程”这些词,其实除了这两个外,涉及多线程方面的还有诸如“暂停线程”“优先级”“挂起线程”“恢复线程”等等。下面将一个一个的解释。 a.启动线程 顾名思义,“启动线程”就是新建并启动一个线程的意思,如下代码可实现: Thread thread1 = new Thread(new ThreadStart( Count)); 其中的 Count 是将要被新线程执 阅读全文
posted @ 2007-03-24 16:31 leonardleonard 阅读(145) 评论(0) 推荐(0)
摘要:using System; using System.Runtime.InteropServices; using System.Management; namespace Hardware { /// summary /// Hardware_Mac 的摘要说明。 /// /summary public class HardwareInfo { //取机器名 public string GetHostName() { return System.Net.Dns.GetHostName(); } //取CPU编号 public String GetCpuID() { try { Man 阅读全文
posted @ 2007-03-24 16:30 leonardleonard 阅读(175) 评论(0) 推荐(0)
摘要:如果要想获得远程的地址,需要用sendarp这个函数来实现。具体的代码如下: [DllImport("Iphlpapi.dll")] private static unsafe extern int SendARP(Int32 dest,Int32 host,ref IntPtr mac,ref IntPtr length); [DllImport("Ws2_32.dll")] private static extern Int32 inet_addr(string ip); Int32 ldest= inet_addr("157.60.68.163");//目的地的ip Int32 lhos 阅读全文
posted @ 2007-03-24 16:26 leonardleonard 阅读(134) 评论(0) 推荐(0)
摘要:-、问题描述 8数或15数问题是同一个问题,其就是一个随机排列的8个或15个数在一个方正格子中移动到达规定的一个目标状态。由于只有一个空格子,故只有在空格附近的棋子可以移动。 二、算法描述 F 算法选择 此问题需要对所有可能的路径进行穷举,但是由于随着树的高度的加大,其子结点的增加宿舍剧增,所以对所有的子结点进行穷举是不大现实的。而根据当前的状态和目标状态进行对比可以用一个评估函数来评估当前状态的好坏情况。而在这里我们选择A*算法来进行求解,A*算法是一种最好优先的算法。f'(n) = g'(n) + h'(n),f'(n)是估价函数,g'(n)是起点到终点的最短路径值,这里就表示树的高度,h 阅读全文
posted @ 2007-03-24 16:25 leonardleonard 阅读(221) 评论(0) 推荐(0)
摘要:分油问题 -、问题描述 分油问题:两个小孩去打油,一人带了一个一斤的空瓶,另一个带了一个七两和一个三两的空瓶。原计划各打一斤油,可是由于所带的钱不够,只好合打了一斤油,在回家的路上,二人想平分这一斤油,可是又没有其它工具。现只用这三个瓶子(一斤、七两、三两)精确地分出两个半斤油来。 二、算法描述 F 算法选择 通过分析题目并结合深度优先、广度优先和迭代加深搜索的算法的特点以及有缺点,这里选择广度优先算法来求解该分油问题。如果采用深度优先算法搜索,由于其盲目性导致搜索陷入局部陷阱,并不一定能求得解即使得到解也不一定是最优解,因此并不采用此算法。迭代加深搜索则是在固定的深度上进行深度和广度搜索结合 阅读全文
posted @ 2007-03-24 16:24 leonardleonard 阅读(391) 评论(0) 推荐(0)
摘要:一、什么是多态 面向对象程序设计中的另外一个重要概念是多态性。在运行时,可以通过指向基类的指针,来调用实现派生类中的方法。可以把一组对象放到一个数组中,然后调用它们的方法,在这种场合下,多态性作用就体现出来了,这些对象不必是相同类型的对象。当然,如果它们都继承自某个类,你可以把这些派生类,都放到一个数组中。如果这些对象都有同名方法,就可以调用每个对象的同名方法。 同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,这就是多态性。多态性通过派生类重载基类中的虚函数型方法来实现。 在面向对象的系统中,多态性是一个非常重要的概念,它允许客户对一个对象进行操作,由对象来完成一系列的动作,具 阅读全文
posted @ 2007-03-24 16:23 leonardleonard 阅读(177) 评论(0) 推荐(0)
摘要:C# 用户经常提出两个问题:“我为什么要另外编写代码来使用内置于 Windows 中的功能?在框架中为什么没有相应的内容可以为我完成这一任务?”当框架小组构建他们的 .NET 部分时,他们评估了为使 .NET 程序员可以使用 Win32 而需要完成的工作,结果发现 Win32 API 集非常庞大。他们没有足够的资源为所有 Win32 API 编写托管接口、加以测试并编写文档,因此只能优先处理最重要的部分。许多常用操作都有托管接口,但是还有许多完整的 Win32 部分没有托管接口。   平台调用 (P/Invoke) 是完成这一任务的最常用方法。要使用 P/Invoke,您可以编写一个描述如何调 阅读全文
posted @ 2007-03-24 16:21 leonardleonard 阅读(181) 评论(0) 推荐(0)
摘要:C#中的范型对于很多从C++转过来的程序员来说,可以说是一个天大的喜讯。hehe,至少笔者对于这个新特性是充满了敬仰之情。 在C#2.0中,匿名方法、IEnumerable接口和匿名方法的合作,使很多的编程任务变得非常的简单,而且写出来的程序非常的优美。 比如,我们可以写出如下的代码: ListBook thelib = Library.getbooks(); ListBook found = thelib.FindAll(delegate(Book curbook) { if (curbook.isbn.StartsWith("...")) return true; return f 阅读全文
posted @ 2007-03-24 16:20 leonardleonard 阅读(162) 评论(0) 推荐(0)
摘要:using System; using System.Text; using System.IO; using System.Net; using System.Net.Sockets; using System.Collections; namespace SkyDev.Web.Mail { public enum MailFormat{Text,HTML}; public enum MailPriority{Low=1,Normal=3,High=5}; #region Class mailAttachments public class MailAttachments { private 阅读全文
posted @ 2007-03-24 16:19 leonardleonard 阅读(169) 评论(0) 推荐(0)
摘要:namespace DataGridDoubleClick { using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; public class Form1 : System.Windows.Forms.Form { private System.Windows.Forms.DataGrid dataGrid1; private DataSet myDataSet; DateT 阅读全文
posted @ 2007-03-24 16:17 leonardleonard 阅读(152) 评论(0) 推荐(0)
摘要:一、写在前面 C# 语言是一种简单但功能强大的编程语言,用于编写企业应用程序。 C# 语言从C和 C++语言演化而来,在语句、表达式和运算符方面使用了许多 C++ 功能。 C# 语言在类型安全性、版本转换、事件和垃圾回收等方面进行了相当大的改进和创新。 C# 语言提供对常用 API 样式(如 .NET 框架、COM、自动化和 C 样式 API 等)的访问。 什么是动态链接库?DLL三个字母对于你来说一定很熟悉吧,它是Dynamic Link Library 的缩写形式,动态链接库 (DLL) 是作为共享函数库的可执行文件。动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。函数的可 阅读全文
posted @ 2007-03-24 16:15 leonardleonard 阅读(234) 评论(0) 推荐(0)
摘要:using System; using System.IO; namespace mp3infons { class MP3Info { struct MP3InfoStruct { public string MP3Flag; public string Title; public string Singer; public string Album; public string Year; public string Comment; } private string MP3File; MP3InfoStruct mp3struct; public MP3Info(string MP3Na 阅读全文
posted @ 2007-03-24 16:14 leonardleonard 阅读(179) 评论(0) 推荐(0)
摘要://使用方法: // BmpSafe.exe /file2bmp (input BMP) (input file to hide) [output file] //BmpSafe.exe /bmp2file (data BMP) [output file] using System; using System.IO; using System.Drawing; public class Bitmap24Writer { protected Bitmap bmp; protected int curX, curY, iRGB; protected uint bitsLeft, bitsTotal 阅读全文
posted @ 2007-03-24 16:13 leonardleonard 阅读(186) 评论(0) 推荐(0)
摘要:一.多线程的概念 Windows是一个多任务的系统,如果你使用的是windows 2000及其以上版本,你可以通过任务管理器查看当前系统运行的程序和进程。什么是进程呢?当一个程序开始运行时,它就是一个进程,进程所指包括运行中的程序和程序所使用到的内存和系统资源。而一个进程又是由多个线程所组成的,线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的,即不同的线程可以执行同样的函数。多线程是指程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务,也就是说允许单个程序创建多个并行执行的线程来完成各自的任务。浏览器就是一个很好的 阅读全文
posted @ 2007-03-24 16:11 leonardleonard 阅读(168) 评论(0) 推荐(0)
摘要:公司的组织结构经常发生变化,而我们的域帐户信息(AD)是和真实的组织机构相对应的。组织机构变化了,我们自然要改动相应的域帐户信息啦。这是一件很痛苦的事情,原因是什么,大家都明白。那么能不能用程序来解决这个问题呢?(windows2003的管理工具好像已经支持批量修改域帐户信息了)。 我创建了一个windows应用程序来解决: 在Form上放置了六个comboBox用于选择公司的OU(可以选择五级OU,如果你喜欢可以用TreeView更好些)。 加载Form的时候初始化这些comboBox: private void Form1_Load(object sender, System.EventA 阅读全文
posted @ 2007-03-24 16:10 leonardleonard 阅读(389) 评论(0) 推荐(0)
摘要:using System; using System.Management; namespace DiskQuota { /// summary /// Class1 的摘要说明。 /// /summary class Class1 { /// summary /// 应用程序的主入口点。 /// /summary [STAThread] static void Main(string[] args) { try { ManagementClass c = new ManagementClass("Win32_DiskQuota"); ManagementObject quot 阅读全文
posted @ 2007-03-24 16:08 leonardleonard 阅读(168) 评论(0) 推荐(0)
摘要:using System; using System.Management; using System.Collections; class Tester { public static void Main() { try { ManagementPath path = new ManagementPath( ); path.Server = "."; path.NamespacePath = @"root\cimv2"; path.RelativePath = @"Win32_LogicalFileSecuritySetting.Path='c:\\test'"; // using tmp 阅读全文
posted @ 2007-03-24 16:07 leonardleonard 阅读(185) 评论(0) 推荐(0)
摘要:C#是.Net平台的通用开发工具,它能够建造所有的.Net应用。在.Net中所有线程都运行在应用程序域(AppDomain)中,这也许让你想到Win32进程,实际上它们还是有很大的不同。应用程序域提供了一种安全而通用的处理单元,公共语言运行库可使用它来隔离应用程序。注意在.Net中应用程序的隔离是应用程序域而不是进程,在单个进程中可以存在几个应用程序域,而且线程可以跨越应用程序域的范围,某个线程中的方法可以调用另一个线程的方法,这样的话就不会造成进程间调用或进程间切换等方面的额外开销。可以说应用程序域是物理进程(也即win32中的Process)内的逻辑进程。 在Visul C#中System 阅读全文
posted @ 2007-03-24 16:06 leonardleonard 阅读(145) 评论(0) 推荐(0)
摘要:在C#中,进行虚方法的重载有些体会,现与大家分享。 首先请大家看看下面的例子, using System; abstract public class contact { public virtual string prinf() { return ("这是虚方法"); } } public class class1:contact { public string prinf() { return ("这是新的方法");//但这会出现编译警告,因为已经从contact那继承了一个同名方法 } } 想要通过编译,只需将prinf的声明改为 public override string prinf 阅读全文
posted @ 2007-03-24 16:02 leonardleonard 阅读(156) 评论(0) 推荐(0)
摘要:Timer组件是也是一个WinForm组件了,和其他的WinForm组件的最大区别是:Timer组件是不可见的,而其他大部分的组件都是都是可见的,可以设计的。Timer组件也被封装在名称空间System.Windows.Forms中,其主要作用是当Timer组件启动后,每隔一个固定时间段,触发相同的事件。Timer组件在程序设计中是一个比较常用的组件,虽然属性、事件都很少,但在有些地方使用它会产生意想不到的效果。     其实要使得程序的窗体飘动起来,其实思路是比较简单的。首先是当加载窗体的时候,给窗体设定一个显示的初始位置。然后通过在窗体中定义的二个Timer组件,其中一个叫Timer1,其 阅读全文
posted @ 2007-03-24 16:01 leonardleonard 阅读(409) 评论(0) 推荐(0)
摘要:虚函数:由virtual声明,它允许在派生类中被重写,要重写方法,必须先声名为virtual public class myclass { public virtual int myint() { 函数体; } } class myclass1:myclass { public override int myint() { 函数体1; } } 抽象类、抽象函数:由abstract声明,在抽象类中可以定义抽象方法,抽象方法基本没有执行代码,派生类必须重写它,提供其执行代码 public abstract class myclass { public abstract int myint(); } 阅读全文
posted @ 2007-03-24 15:58 leonardleonard 阅读(182) 评论(0) 推荐(0)
摘要:运算符重载是指允许用户使用用户定义的类型编写表达式的能力。它允许用户定义的类型与预定义的类型具有相同的功能。 例如,通常需要编写类似于以下内容的代码,以将两个数字相加。很明显,sum 是两个数字之和。 int i = 5; int sum = i + j; 如果可以使用代表复数的用户定义的类型来编写相同类型的表达式,那当然是最好不过了: Complex i = 5; Complex sum = i + j; 运算符重载允许为用户定义的类型重载(即指定明确的含义)诸如“+”这样的运算符。如果不进行重载,则用户需要编写以下代码: Complex i = new Complex(5); Comple 阅读全文
posted @ 2007-03-24 15:56 leonardleonard 阅读(219) 评论(0) 推荐(0)
摘要:一. 托盘程序的主要步骤及解决方法:   为什么说用Visual C#可以十分方便的做一个托盘程序,主要的原因是在.Net框架的软件开发包( .Net FrameWork SDK )中的WinForm组件中定义了一个专门用来开发托盘程序的组件--NotifyIcon组件。下面就来介绍一下这个组件的具体用法和程序设计中的主要的技巧。   (1).如何在程序运行后隐藏窗体:   我们知道托盘程序运行后是无法看见主窗体的,他只会显示在工具栏上。在用Visual C#设计此类程序的时候,可以用二种方法使得程序运行后不显示主窗体。其中一种方法是重载主窗体中的OnActivated( )事件,OnActi 阅读全文
posted @ 2007-03-24 15:54 leonardleonard 阅读(439) 评论(0) 推荐(0)
摘要:html head TITLE分析数据库结构,自动生成代码/TITLE meta http-equiv="Content-Type" content="text/html; charset=gb2312" /head frameset cols="237,767" rows="*" frame src="dbxml.aspx" frame name="code" src="about:blank" /frameset /html ########################### dbxml.aspx 文件内容,该文件没有C#代码文件 ##### 阅读全文
posted @ 2007-03-24 15:51 leonardleonard 阅读(169) 评论(0) 推荐(0)
摘要:whois.aspx % @Page Language="C#" % % @Import Namespace="System.Net.Sockets" % % @Import Namespace="System.Text" % % @Import Namespace="System.IO" % % @Import Namespace="System.Collections" % script language="C#" runat="server" void doQuery(Object sender, EventArgs e) { String strDomain = 阅读全文
posted @ 2007-03-24 15:50 leonardleonard 阅读(175) 评论(0) 推荐(0)
摘要:POP3的使用很简单,所以.net没有向SMTP那样给出相应的类来控制. 废话少说,程序员最需要的使代码,:)! 1.打开VS.NET 2003. 2.新建一个WinForm Application. 3.添加命名空间 using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using System.Net; using System.Net.Sockets; using Sy 阅读全文
posted @ 2007-03-24 15:49 leonardleonard 阅读(250) 评论(0) 推荐(0)
摘要:一 :编程思想 1、创建启动盘 插入要创建的启动盘,程序自动检测光驱中光盘,利用WMI(Windows管理架构:Windows Management Instrumentation)读取该光盘的序列号(具有唯一性),把该序列号写入注册表。 2、验证 程序执行时,自动检测光驱中的光盘,利用WMI获取序列号,然后读取注册表中先前写入的序列号,二者比较,相同则程序启动成功,否则提示插入启动盘。 二 :相关知识 1、 什么是WMI? WMI(Windows管理架构:Windows Management Instrumentation)是Microsoft基于Web的企业管理(WBEM)和 Deskto 阅读全文
posted @ 2007-03-24 15:47 leonardleonard 阅读(243) 评论(0) 推荐(0)
摘要:在.NET Framework中,System.Convert类中提供了较为全面的各种类型、数值之间的转换功能。其中的两个方法可以轻松的实现各种进制的数值间的转换: Convert.ToInt32(string value, int fromBase): 可以把不同进制数值的字符串转换为数字,其中fromBase参数为进制的格式,只能是2、8、10及16: 如Convert.ToInt32(”0010”,2)执行的结果为2; Convert.ToString(int value, int toBase): 可以把一个数字转换为不同进制数值的字符串格式,其中toBase参数为进制的格式,只能是2 阅读全文
posted @ 2007-03-24 15:39 leonardleonard 阅读(116) 评论(0) 推荐(0)
摘要:先在项目引用里添加上对Microsoft Word 9.0 object library的引用。 using System; namespace DocConvert { class DoctoRtf { static void Main() { //创建一个word的实例 Word.Application newApp = new Word.Application(); // 指定源文件和目标文件 object Source="c:\\abc\\Source.doc"; object Target="c:\\abc\\Target.rtf"; object Unknown =Type.Mis 阅读全文
posted @ 2007-03-24 15:36 leonardleonard 阅读(244) 评论(0) 推荐(0)
摘要:大家肯定对switch语句并不陌生,它能够让程序根据控制表达式的值,从多个动作中作出选择(从逻辑过程看,和多分支语句if-else有些相似)。在C++和java中也有这一语句,不过在C#中,这一语句则有了些变化。先看下边一个例子: switch(letter) { case 'a': Console.WriteLine("aaaaa"); case 'b': Console.WriteLine("bbbbb"); break; } 的这个例子在“case 'a'”这部分会产生一个错误,因为程序会一直执行到“case 'b'”来,也就是发生了穿越,但是在C#中,是禁止穿越发生的。因此,你必须使用 阅读全文
posted @ 2007-03-24 15:35 leonardleonard 阅读(335) 评论(0) 推荐(0)
摘要:Image bmap; IDataObject data = System.Windows.Forms.Clipboard.GetDataObject(); bmap = (Image)(data.GetData(typeof(System.Drawing.Bitmap))); Graphics g = Graphics.FromImage(bmap); SolidBrush drawBrush = new SolidBrush(Color.Red); Font drawFont = new Font("Arial", 10, FontStyle.Bold, GraphicsUnit.Mill 阅读全文
posted @ 2007-03-24 15:34 leonardleonard 阅读(180) 评论(0) 推荐(0)
摘要:现在越来越多的网站都喜欢将用户上传的图片加上网站的版权信息,不要以为那是用photoshop之类的图片处理软件加上去的,其实我们只要写一小段代码,就可以实现这个功能。 添加版权信息的原理其实挺简单:通过图片获取Graphics类的对象,该类有一个DrawString()方法可以将信息写到图片上,甚至还可以做出各种各样的效果,如水印,背景透明等。最后保存图片即大功告成了。 我们创建一个windows应用程序项目,界面设计如图: 添加版权信息的代码如下: //创建一张位图 Bitmap bitmap=new Bitmap(this.pictureBox2.Width,this.pictureBox 阅读全文
posted @ 2007-03-24 15:32 leonardleonard 阅读(283) 评论(0) 推荐(0)
摘要:public class QueueManage { /// /// 发送对象到队列中 /// /// 队列名称,因为队列名称在一个应用中应该不改变的,所以大家最好写在配置文件中 /// 要发出去的对象 public static void SendQueue(string QueuePath,MyBase.SmsQueue sq) { System.Messaging.MessageQueue mqSend=new System.Messaging.MessageQueue(QueuePath,false); EnsureQueueExists(QueuePath); mqSend.Send 阅读全文
posted @ 2007-03-24 15:31 leonardleonard 阅读(158) 评论(0) 推荐(0)
摘要:经常看一些的程序,有些一个解决方案带有多个项目,由于代码比较多,多人开发,所以好多vs.net下的工程是用source safe进行版本控制的。而用source safe进行版本控制需要局域网路径共享,因此好多项目换一台机器打开会出现一些问题,比如“解决方案看起来是受源代码管理,但无法找到它的绑定信息……”之类的提示信息很多。有时候修改了代码还保存不了,所以想把他去掉,下面是对项目管理前后的一些对比。 一、工程项目比较 同没有受Source Safe代码管理的工程相比: 1. 多出了.scc、.vssscc和.vspscc文件; 2. C#项目文件(.csproj)里面添加了几行标签: Scc 阅读全文
posted @ 2007-03-24 15:30 leonardleonard 阅读(224) 评论(0) 推荐(0)
摘要:Singleton通常被认为是最简单的设计模式,很多初学者都是通过它来了解设计模式的含义。然而,熟悉设计模式的技术人员都知道,要正确实现Singleton模式实际上是非常难的,涉及到很多技术细节。本文对于Singleton做了大胆深入的研究,并且探讨了C++、Java和C#中的Singleton实现。 在开发软件应用程序过程中,随着应用程序的开发,会出现重复性的模式。随着整个软件系统的开发,很多相同的模式会逐渐显现出来。 这种重复性模式概念在其他应用中是非常明显的。汽车制造就是一种此类应用。很多不同的汽车型号使用相同的子构件,包括大多数基本部件(例如,灯泡和紧固零件)以及较大的构件(例如,底盘 阅读全文
posted @ 2007-03-24 15:27 leonardleonard 阅读(197) 评论(0) 推荐(0)
摘要:在C#中采用的是事件驱动方式,但在我们使用的过程中,有时候通过调用系统原有的消息,处理起来会比较简单一些,特别是在处理与DLL文件的交互时,的确是非常的方便。 在C#中使用自定义消息 在C#中使用自定义消息非常简单,只需要下面几个简单的步骤就可以了: 1、 定义消息 定义消息的方法和VC中定义消息有一点点不同 比如在VC中申明一个自定义消息: #define WM_TEST WM_USER + 101 而在c#中消息需要定义成windows系统中的原始的16进制数字,比如自定义消息 public const int USER = 0x0400; 那么我们在VC中申明的自定义消息,在C#中就可以 阅读全文
posted @ 2007-03-24 15:26 leonardleonard 阅读(132) 评论(0) 推荐(0)
摘要:*本文参考了《JAVA与模式》的部分内容,适合于设计模式的初学者。 合成模型模式属于对象的结构模式,有时又叫做部分-整体模式。合成模式将对象组织到树结构中,可以用来描述整体与部分的关系。合成模式可以使客户端将单纯元素与复合元素同等看待。如文件夹与文件就是合成模式的典型应用。根据模式所实现接口的区别,合成模式可分为安全式和透明式两种。 安全式的合成模式要求管理聚集的方法只出现在树枝构件类中,而不出现在树叶构件类中。 涉及到三个角色: 抽象构件(Component):这是一个抽象角色,它给参加组合的对象定义公共的接口及其默认的行为,可以用来管理所有的子对象。合成对象通常把它所包含的子对象当做类型为 阅读全文
posted @ 2007-03-24 15:24 leonardleonard 阅读(204) 评论(0) 推荐(0)
摘要:在.net中,对英文语音有较好的支持,但是对中文语音的支持还没有加入进来,我们要想实现中文发音或中文语音识别,必需先安装微软的Speech Application SDK(SASDK),它的最新版本是 SAPI 5.1 他能够识别中、日、英三种语言,你可以在这里下载:http://www.microsoft.com/speech/download/sdk51/,需要安装这两个文件Speech SDK 5.1和5.1 Language Pack,其中5.1 Language Pack可以选择安装支持的语言。 安装好以后,我们就可以开始进行语音程序的开发了,当然,在这之前我们需要把SAPI.dll 阅读全文
posted @ 2007-03-24 15:23 leonardleonard 阅读(359) 评论(0) 推荐(0)
摘要:概述:在真正的对象化开发项目中,我们通常会将常用的业务实体抽象为特定的类,如Employee、Customer、Contact等,而多数的类之间会存在着相应的关联或依存关系,如Employee和Customer通过Contact而产生关联、Contact是依赖于Employee和Customer而存在的。在实际的对象应用模块中,可能会有这样的需求:获得一组客户对象(即Customers集合类的实例,如customers),指向其中一个Customer对象(如customers[i]),通过访问这个Customer对象的属性Name(customers[i].Name)和Contacts(如cu 阅读全文
posted @ 2007-03-24 15:21 leonardleonard 阅读(179) 评论(0) 推荐(0)
摘要:目录 反射的概述 反射appDomain 的程序集 反射单个程序集 利用反射获取类型信息 设置反射类型的成员 通过反射创建类型的实例 反射类型的接口 反射的性能 反射的概述 反射的定义:审查元数据并收集关于它的类型信息的能力。元数据(编译以后的最基本数据单元)就是一大堆的表,当编译程序集或者模块时,编译器会创建一个类定义表,一个字段定义表,和一个方法定义表等,。System.reflection命名空间包含的几个类,允许你反射(解析)这些元数据表的代码 和反射相关的命名空间(我们就是通过这几个命名空间访问反射信息): System.Reflection.MemberInfo System.Re 阅读全文
posted @ 2007-03-24 15:18 leonardleonard 阅读(134) 评论(0) 推荐(0)
摘要:VC和BCB中做一个Server的监听程序,只需要指定端口,然后监听(Listen)就行了.在C#找不到这个函数了,慢慢看MSDN,怎么需要指定IP和Port才能监听,那么多网卡的机器应该怎么写程序呢?下面的程序可以解释怎么去做. TcpListener 类别会提供简易的方法,用以在封锁的同步模式中聆听 (Listen) 和接受输入的连接要求。您可以使用 TcpClient 或 Socket 来连接 TcpListener 。使用 IPEndPoint 、本机 IP 地址和连接端口编号,或者就只用连接埠编号来建立 TcpListener 。如果您想要基础服务供货商为您指派那些值,请指定 Any 阅读全文
posted @ 2007-03-24 15:16 leonardleonard 阅读(239) 评论(0) 推荐(0)
摘要:using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using System.IO; using System.Text; using System.Security.Cryptography; namespace 非对称加密 { /// summary /// Form1 的摘要说明。 /// /summary public class Form1 : Syste 阅读全文
posted @ 2007-03-24 15:15 leonardleonard 阅读(221) 评论(0) 推荐(0)
摘要:(原文排版格式 http://www.marshine.com) 名称 Safely Method 意图 通过方法保证返回有效(不为空引用,null或Nothing)的对象或抛出异常,当存在多个调用者时简化调用者需要处理null返回值的代码。 动机 一个存放对象的集合或类似功能的容器类,提供了根据键值返回集合成员的接口,如果不存在指定键值的项,则返回一个空引用。例如根据Student的SID(学号)从StudentManager返回Student对象,如果存在指定的学号,则返回一个有效的Student对象,否则返回null。大多数情况下调用者需要根据是否null值决定如何处理,如果在程序的多处 阅读全文
posted @ 2007-03-24 15:14 leonardleonard 阅读(188) 评论(0) 推荐(0)
摘要:原文排版格式:http://www.marshine.com) reversion:2004/5/28 修改说明:感谢Ninputer提到的CLS兼容问题,同时修改了原来版本没有提及的Equals改写,以及修改"=="重载的不完善代码,和增加enum struct内容 reversion:2004/6/4 增加kirc提到的Enum的Flags特性,因为文本超长,新的版本可以在http://www.marshine.com上阅读。 常量类型的表示 系统中常常有一些属性的属性值是固定的一组值,它们的值域是封闭的(有限数量),比如国家代码(每个国家具有唯一的代码,而在一定时期国家的数量是确定的)、 阅读全文
posted @ 2007-03-24 15:13 leonardleonard 阅读(177) 评论(0) 推荐(0)
摘要:前言:设计模式是软件开发领域的精髓之一。学好设计模式是目前每一个开发人员的必修课。目前关于设计模式的书很多,其中比较好的有GOF那本的中译本,但并不很适合初学者。还有一本是《JAVA与模式》,比较适合初学者使用,在此强烈推荐。但这本书的不足之处是一些地方讲的过于繁琐,很多地方只须简单说明一下即可,却大费笔墨,使得书籍很厚,看起来费力。而且是用JAVA描述的,这使得一些只懂C#的人无从下手。我是一个.net的拥护者,为了看这本书我特意看了些JAVA的书,感觉JAVA在书籍的多样性方面比 .net好很多,而且不少书籍的质量很高。可能是现在JAVA已经比较成熟的原因吧。为了方便.net的爱好者学习设 阅读全文
posted @ 2007-03-24 15:10 leonardleonard 阅读(141) 评论(0) 推荐(0)
摘要:设计模式C#描述——抽象工厂模式 阅读此文应先阅读简单工厂模式与工厂方法模式 抽象工厂模式是对象的创建模式,它是工厂方法模式的进一步推广。 假设一个子系统需要一些产品对象,而这些产品又属于一个以上的产品等级结构。那么为了将消费这些产品对象的责任和创建这些产品对象的责任分开,可以引进抽象工厂模式。这样的话,消费产品的客户不需要直接参与产品的创建工作,而只需要向一个公用的工厂接口请求所需要的产品。 抽象工厂角色:担任这个角色的是工厂方法模式的核心,它是与应用系统的商业逻辑无关的。通常使用接口或抽象类实现。 具体工厂角色:这个角色直接在客户端的调用下创建产品的实例。这个角色含有选择合适的产品对象的逻 阅读全文
posted @ 2007-03-24 15:07 leonardleonard 阅读(157) 评论(0) 推荐(0)
摘要:设计模式C#描述——单例与多例模式 作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。 单例模式有以下特点: 单例类只能有一个实例。 单例类必须自己创建自己的唯一实例。 单例类必须给所有其他对象提供这一实例。 一个典型的单例类的实现如下所示:其中构造子私有表示子类不能被继承。 public class Singleton { private static Singleton m_instance = null; private Singleton() { } public static Singleton getInstance() 阅读全文
posted @ 2007-03-24 15:06 leonardleonard 阅读(232) 评论(0) 推荐(0)
摘要:partial 关键字的作用是将你的 class 分为多个部分,编译器会将多个部分拼到一起去。 public partial class SampleClass ...{ public void MethodA() ...{ } } public partial class SampleClass ...{ public void MethodB() ...{ } } 和 public class SampleClass ...{ public void MethodA() ...{ } public void MethodB() ...{ } } 是等价的。 我猜想这个东西出现的初衷是为了解 阅读全文
posted @ 2007-03-24 15:05 leonardleonard 阅读(131) 评论(0) 推荐(0)
摘要:FCL得很多方法的返回值都是包含字符的Byte数组而不是返回一个String,这样的方法包含在如下的类中: · System.Net.Sockets.Socket.Receive · System.Net.Sockets.Socket.ReceiveFrom · System.Net.Sockets.Socket.BeginReceive · System.Net.Sockets.Socket.BeginReceiveFrom · System.Net.Sockets.NetworkStream.Read · System.Net.Sockets.NetworkStream.BeginRead 阅读全文
posted @ 2007-03-24 15:04 leonardleonard 阅读(338) 评论(0) 推荐(0)
摘要:这个是对于 EMAIL发送系统(C#+基于SMTP认证) 1.0 的改版这个第一版是2002年11月写的,过了一年半了,才有人提意见,就修正了一下,因为后来做的项目一直用不上,也就没有注意到 前段时间有网友反馈了一些问题,这次主要做了一些修正 1,text模式下发往163的邮件内容不见了 2,如果用outlook接收而不是在网上看邮件的话,会发现正文内容,但其后跟着一些乱码. 3,一些新开通的邮箱收到的是乱码,如*@126.com 4,修正了带附件的邮件,打开附件时内容混乱的问题 感谢 Lion互动网络论坛 的smhy8187和邮箱是grassdragon_china@yahoo.com.cn 阅读全文
posted @ 2007-03-24 15:03 leonardleonard 阅读(227) 评论(0) 推荐(0)
摘要://定义变量 int i,start,stop,t,stat,statt,pp,pagecount,pagesize; //变量初始值 stat=0; statt=0; start=0;//开始查询的字符串位置,初始为0 stop=0; pagesize=2000;//定义每页至少显示字符串数 pagecount=0; //获得当前的页数 pa=Request.Params["page"]; if(pa=="" || pa==null) pa="1"; pp=Convert.ToInt32(pa); //获得内容 articletxt=rs["contenttxt"].ToString(); 阅读全文
posted @ 2007-03-24 14:58 leonardleonard 阅读(209) 评论(0) 推荐(0)
摘要:在 C# 里面, 主窗口拥有主线程, 主线程产生子线程监控 Socket 埠, 子线程一收到数据流就会给主线程发送一个事件, 创建一个窗口. 现在的情况是子线程能够收到数据流, 主窗口能够收到子线程发送过来的事件, 能够创建一个窗口. 这个窗口有问题: 窗口状态像死掉程序的窗口一样, 反白的. 开发碰到很棘手的问题, 寻找解决方法. 品味程序出错过程, 逐步跟踪程序执行过程, 每一行代码每一条语句全部执行, 怪了, 大白天碰到鬼了. 主窗口加入一个按钮, 按钮的作用就是执行主窗口的事件, 启动程序, 点击按钮, 程序正确创建一个窗口, 按照这个测试结果来看, 事件处理中的代码没有任何问题. 在 阅读全文
posted @ 2007-03-24 14:58 leonardleonard 阅读(371) 评论(0) 推荐(0)
摘要:正文: 一、首先要引用一个Excel的组件,我一开始是在Office XP下尝试的,不 成功,后来把XP给干掉,装2k,就成功了,所以这里分享的是Office 2k下 引用相关组件来实现功能的,在工程中引用COM标签中的Microsoft Excel 9.0 Object Library,添加成功后,引用中会多出三个引用项: Excel、Office、VBIDE。 二、具体代码。 using System; using System.Data; using Excel; using System.IO; namespace Test.ExcelCom { /// summary /// 将 阅读全文
posted @ 2007-03-24 14:55 leonardleonard 阅读(205) 评论(0) 推荐(0)
摘要:C# 2.0中提供了通过delegate实现匿名函数功能,能有效地减少用户记代码工作,例如 以下为引用: ... button1.Click += new EventHandler(button1_Click); ... void button1_Click(Object sender, EventArgs e) { // Do something, the button was clicked... } ... 可以被简化为直接使用匿名函数构造,如 以下为引用: ... button1.Click += delegate(Object sender, EventArgs e) { // Do 阅读全文
posted @ 2007-03-24 14:54 leonardleonard 阅读(292) 评论(0) 推荐(0)
摘要:using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using System.Drawing.Imaging; using System.Runtime.InteropServices; namespace LiBo.ColorPicker { /// summary /// Form1 的摘要说明。 /// /summary public class Form1 阅读全文
posted @ 2007-03-24 14:52 leonardleonard 阅读(279) 评论(0) 推荐(0)
摘要:大家知道,在我们访问一个网站的时候。系统会把这个网站上的图片,动画等内容全部缓存到Internet临时文件夹中。 我们可以通过 Drives:\Documents and Settings\user\Local Settings\Temporary Internet Files访问。但是可能我们都没有想到,里面的文件实际却不同于我们系统中其他的文件夹和文件的关系。 举例说明,我们在VS.net下写一个函数来返回指定文件夹中的文件夹和所有文件时,但我们把Internet临时文件夹的地址传进去时,系统只会返回一个文件,那就是desktop.ini(每个文件夹都有),还有一个隐藏的文件夹。所 阅读全文
posted @ 2007-03-24 14:50 leonardleonard 阅读(259) 评论(0) 推荐(0)
摘要:在C#中取汉字的拼音码,支持数字、英文字符、一级汉字、二级汉字 public string GetFirstLetter(string hz) { string ls_second_eng = "CJWGNSPGCGNESYPBTYYZDXYKYGTDJNNJQMBSGZSCYJSYYQPGKBZGYCYWJKGKLJSWKPJQHYTWDDZLSGMRYPYWWCCKZNKYDGTTNGJEYKKZYTCJNMCYLQLYPYQFQRPZSLWBTGKJFYXJWZLTBNCXJJJJZXDTTSQZYCDXXHGCKBPHFFSSWYBGMXLPBYLLLHLXSPZMYJHSOJNGHD 阅读全文
posted @ 2007-03-24 14:48 leonardleonard 阅读(1572) 评论(0) 推荐(0)
摘要:其实现的原理就是先将汉字转化成为内码,然后通过内码和拼音的对照来查找。 详细的代码如下所示: public class chs2py {private static int[] pyvalue=new int[]{-20319,-20317,-20304,-20295,-20292,-20283,-20265,-20257,-20242,-20230,-20051,-20036,-20032,-20026, -20002,-19990,-19986,-19982,-19976,-19805,-19784,-19775,-19774,-19763,-19756,-19751,-19746,-19 阅读全文
posted @ 2007-03-24 14:48 leonardleonard 阅读(118) 评论(0) 推荐(0)
摘要:1. 避免将多个类放在一个文件里面。 2. 一个文件应该只有一个命名空间,避免将多个命名空间放在同一个文件里面。 3. 一个文件最好不要超过500行的代码(不包括机器产生的代码)。 4. 一个方法的代码长度最好不要超过25行。 5. 避免方法中有超过5个参数的情况。使用结构来传递多个参数。 6. 每行代码不要超过80个字符。 7. 不要手工的修改机器产生的代码。 a) 如果需要编辑机器产生的代码,编辑格式和风格要符合该编码标准。 b) Use partial classes whenever possible to factor out the maintained portions. 8. 阅读全文
posted @ 2007-03-24 14:45 leonardleonard 阅读(128) 评论(0) 推荐(0)
摘要:命名约定和风格 1. 使用Pascal的命名规范命名类型和方法的名字。 public class SomeClass { public SomeMethod(){} } 2. 使用camel命名规范命名局部变量和方法的参数。 int number; void MyMethod(int someNumber) {} 3. 在命名接口的时候使用I作为前缀。 interface IMyInterface {...} 4. 私有成员变量使用m_作为前缀。 public class SomeClass { private int m_Number; } 5. 自定义的属性类使用Attribute作为其后 阅读全文
posted @ 2007-03-24 14:43 leonardleonard 阅读(158) 评论(0) 推荐(0)
摘要:API (Application Programming Interface) is a set of commands, which interfaces the programs with the processors. The most commonly used set of external procedures are those that make up Microsoft Windows itself. The Windows API contains thousands of functions, structures, and constants that you can 阅读全文
posted @ 2007-03-24 14:41 leonardleonard 阅读(234) 评论(0) 推荐(0)
摘要:一般来说,在IT技术界以及硬件产业,技术的更新换代速度非常得惊人,而惯例是所有的新技术都会遵循向下兼容的原则,但是.NET技术不仅仅做到了这一点,.NET甚至实现了相互之间的各自调用,这一点是非常难能可贵的。也就是说,不但我们可以在.NET组件中调用COM组件,同时也可以在COM组件中正常的调用.NET组件。这点带来的好处是显而易见的,一方面我们可以保持现有的技术资源,另一方面,在现有资源中可以利用.NET所带来的各种新技术。 在E\ClassLibrary1\目录下用SN命令生成一个GUID,如下所示: sn –k keyfile.snk 在工程的AssemblyInfo.cs文件中加入如下 阅读全文
posted @ 2007-03-24 14:40 leonardleonard 阅读(208) 评论(0) 推荐(0)
摘要:如何使用DNS类并得到机器的IP地址的技巧 介绍 这篇文章并不是技术纵览或大型讨论,而更像是关于如何得到IP地址或主机名称的技巧集锦。在 Win32 API编程中你可以使用NetWork API,在.NET平台中也是类似的。唯一的不同之处是你要找到并理解为完成这个任务需要什么名称空间(namespace)和类。在.NET平台中NetWork API存在于System.Net名称空间中。System.Net名称空间中的DNS类可以用来得到机器名称和IP地址。 DNS类提供类简单的域名解释函数。DNS 类为处理Internet域名(DNS)信息提供支持.这些返回的信息包括多重的IP地址和主机别名。 阅读全文
posted @ 2007-03-24 14:38 leonardleonard 阅读(494) 评论(0) 推荐(0)
摘要:c#中写一个多线程应用是非常简单的,本章将介绍如何在c#种开发多线程程序。在.net中线程是由System.Threading 名字空间所定义的。所以你必须包含这个名字空间。 using System.Threading; 开始一个线程 System.Threading 名字空间的线程类描述了一个线程对象,通过使用类对象,你可以创建、删除、停止及恢复一个线程。创建一个新线程通过new 操作,并可以通过start()方法启动线程 thread = new Thread(new ThreadStart(HelloWorld)); thread.Start(); 注意:和java程序不同,创建新线程 阅读全文
posted @ 2007-03-24 14:37 leonardleonard 阅读(160) 评论(0) 推荐(0)
摘要:最近经常看到论坛中许多帖子询问如何使用split来分割字符串,我这里对split做一些简单的总结,希望能够对大家有所帮助。下面介绍几种方法: 第一种方法:打开vs.net新建一个控制台项目。然后在Main()方法下输入下面的程序。 string s="abcdeabcdeabcde"; string[] sArray=s.Split('c'); foreach(string i in sArray) Console.WriteLine(i.ToString()); 输出下面的结果:ab deab deab de 我们看到了结果是以一个指定的字符进行的分割。如果我们希望使用多个字符进行分割如c, 阅读全文
posted @ 2007-03-24 14:35 leonardleonard 阅读(160) 评论(0) 推荐(0)
摘要:使用C#编写不同的“Hello World”程序 1. A Beginners Hello World public class HelloWorld { public static void Main() { System.Console.WriteLine("HELLO WORLD"); } } 2. Slightly improved version using System; public class HelloWorld { public static void Main() { Console.WriteLine("HELLO WORLD"); } } 3. Command Lin 阅读全文
posted @ 2007-03-24 14:34 leonardleonard 阅读(177) 评论(0) 推荐(0)
摘要:using System; using System.IO; using System.Runtime.InteropServices; using System.Text; using Microsoft.Win32; namespace Wjb.ReadOrWriteIniAndReg { /// summary /// HardDiskVal 的摘要说明。 /// 读取指定盘符的硬盘序列号 /// 功能:读取指定盘符的硬盘序列号 /// /summary public class HardDiskVal { [DllImport("kernel32.dll")] private 阅读全文
posted @ 2007-03-24 14:33 leonardleonard 阅读(693) 评论(0) 推荐(0)
摘要:时候我们需要在内存中转换Image格式到Icon 根据经验,通常我们应该可以这样做 Image image = xxxx;///假设这里已经有一个Image对象 System.IO.MemoryStream mStream = new System.IO.MemoryStream();///创建内存流 image.Save(mStream, System.Drawing.Imaging.ImageFormat.Icon); Icon icon = Icon.FromHandle(new Bitmap(mStream).GetHicon()); mStream.Close(); 但这里在imag 阅读全文
posted @ 2007-03-24 14:31 leonardleonard 阅读(155) 评论(0) 推荐(0)
摘要:在.Net中实现Web服务时,在Web服务接口中产生的任何用户异常(非SoapException之外的异常)都被包装为SoapException传递给客户端,这使得难以采用通常的方式处理Web Service的异常。本文讲述如何通过SoapExceptionHelper实现一致的异常处理。 Web Service的异常处理问题 在.Net中实现Web服务时,Web服务接口中产生的任何用户异常(非SoapException之外的异常)都被包装为SoapException传递给客户端 ,用户错误信息放置在SoapException的Message属性中。 下面的例子演示了一个SoapExcepti 阅读全文
posted @ 2007-03-24 14:29 leonardleonard 阅读(226) 评论(0) 推荐(0)
摘要:[C#] public static Process RunningInstance() { Process current = Process.GetCurrentProcess(); Process[] processes = Process.GetProcessesByName (current.ProcessName); //Loop through the running processes in with the same name foreach (Process process in processes) { //Ignore the current process if (p 阅读全文
posted @ 2007-03-24 14:28 leonardleonard 阅读(196) 评论(0) 推荐(0)
摘要:做了一个控件,这样就可以告别图片按钮了:) 效果: 程序源代码: using System; using System.Collections; using System.ComponentModel; using System.Drawing; using System.Data; using System.Windows.Forms; using System.Drawing.Drawing2D; using System.Drawing.Text; namespace WindowsControlLibrary1 { /// summary /// UserControl1 的摘要说 阅读全文
posted @ 2007-03-24 14:27 leonardleonard 阅读(307) 评论(0) 推荐(0)
摘要:文章“MSMQ:可伸缩、高可用性的负载平衡解决方案(英文)”介绍了一种解决方案,用于高可用性消息队列 (MSMQ) 的可伸缩负载平衡解决方案体系结构。此解决方案中涉及了一种将 Windows 服务用作智能消息路由器的开发方案。这样的解决方案以前只有 Microsoft Visual C++® 程序员才能实现,而 .NET 框架的出现改变了这种情况。从下面的解决方案中,您可以看到这一点。 .NET 框架应用程序 这里介绍的解决方案是一种用来处理若干消息队列的 Windows 服务;其中每个队列都是由多个线程进行处理(接收和处理消息)。处理程序使用循环法技术或应用程序特定值(消息 AppS 阅读全文
posted @ 2007-03-24 14:25 leonardleonard 阅读(471) 评论(1) 推荐(0)
摘要:以下的源码里分别给出了将DBF,XLS,XML,MDB文件导入C#DataGrid的方法,供各位参考。 //PutInDataSet.cs的源码 using System; using System.Data.Odbc; using System.Data.OleDb; using System.Data; using System.Collections; namespace PutInDataSet { /// summary /// DataSetTransIn 的摘要说明。 /// /summary public class PutInDataSet { /// summar 阅读全文
posted @ 2007-03-24 14:22 leonardleonard 阅读(214) 评论(0) 推荐(0)
摘要:本文利用C#和.NET提供的类来轻松创建一个抓取网页内容源代码的程序。HTTP是WWW进行数据访问最基本的协议之一,在.NET的基本类型库类中提供了两个对象类:HTTPWebRequest和HTTPWebResponse,分别用来向某资源发送请求和获得响应。为了得到一个资源的内容,我们先指定一个想要抓取的URL地址,用HTTPWebRequest对象进行请求,用HTTPWebResponse对象接收响应的结果,最后用TextStream对象来提取我们想要的信息,并在控制台打印出来。 下面就是看看如何实现这样的功能: 第一步:打开VS.NET,点“文件”-“新建”-“项目”,项目类型选择“Vis 阅读全文
posted @ 2007-03-24 14:21 leonardleonard 阅读(169) 评论(0) 推荐(0)
摘要:using System; namespace CNCalendar { public class CNDate { private const ushort START_YEAR = 1901; private const ushort END_YEAR = 2050; private string[] ConstellationName = { "白羊座", "金牛座", "双子座", "巨蟹座", "狮子座", "处女座", "天秤座", "天蝎座", "射手座", "摩羯座", "水瓶座", "双鱼座"}; private string[] LunarHolDayName = { "小 阅读全文
posted @ 2007-03-24 14:20 leonardleonard 阅读(222) 评论(0) 推荐(0)
摘要:因为C#是由Microsoft公司推出的,所以它对Microsoft的所有产品的兼容性与相互操作性是其它公司开发出的编程语言所不及的。Microsoft开发的Windows操作系统与C#之间的关系也非常紧密。从而实现了C#对Windows的无缝操作。 下面,我们就以“C#对Windows控制面板中的选项进行操作”为题讲述一下它们之间的联系。 在Windows操作系统中,控制面板的文件一般是以“.cpl”为后缀的,下表列出Windows控制面板常用的选项及其文件名: ----------------------------------------------------------------- 阅读全文
posted @ 2007-03-24 14:16 leonardleonard 阅读(238) 评论(0) 推荐(0)
摘要:Base64和下面将要介绍的Quoted-Printable都属于MIME (多部分( multi-part)、多媒体电子邮件和 WWW 超文本的 一种编码标准,用于传送诸如图形、声音和传真等非文本数 据)。MIME定义在RFC1341中。 Base64是现今在互联网上应用最多的一种编码,几乎所 有的电子邮件软件头把它作为默认的二进制编码,它已经成 了现今电子邮件编码的代名词。 下面是Base64的一个例子,从例子中,您也可以看到 Base64与电子邮件的的紧密联系: Content-Type: text/plain;charset="cn-gb" Content-Transfer-Encod 阅读全文
posted @ 2007-03-24 14:15 leonardleonard 阅读(225) 评论(0) 推荐(0)
摘要:在下面的程序中我们将把系统中所安装的打印机用列表框列出来,同时为默认打印机设置缺省值。   在下面的程序中我们用到了两个主要的类,把所有的打印机列表出来用到了PrinterSettings 类,获取系统默认打印机用到了PrintDocument 类,下面我们就动手实践一下吧。   先新建一个windows form的工程,然后加入一个lable和一个comBox,就行啦,关键在下面啦,我们如何获得默认打印机,就得用下面的语句。 PrintDocument prtdoc = new PrintDocument(); string strDefaultPrinter = prtdoc.Printe 阅读全文
posted @ 2007-03-24 14:14 leonardleonard 阅读(161) 评论(0) 推荐(0)
摘要:using System; using Microsoft.Win32; namespace SystemPathsApp { /// summary /// Summary description for SystemPaths. /// /summary public class SystemPaths { public SystemPaths() { // // TODO: Add constructor logic here // folders = OpenRegistryPath(Registry.CurrentUser,@"\Software\Microsoft\Wind 阅读全文
posted @ 2007-03-24 14:12 leonardleonard 阅读(160) 评论(0) 推荐(0)
摘要:如果叫你实现远程启动别人的计算机,你首先想到的可能是先做一个在远程计算机上面运行客户端程序,然后在本地计算机上面再做一个服务器端程序,通过这二个程序直接的通讯实现重启远程计算机。这当然是一个方法。但这未免有点麻烦。如果现在只告诉你远程计算机的管理者的登陆帐号,而并不允许你在远程的计算机上面运行一个所谓的客户端程序,让你通过程序来完成重启远程计算机。不知道你是否感觉有些困难了。其实按照上面的这些条件实现重启远程计算机,利用C#可以比较方便的完成。下面就来介绍一下具体的实现方法。 一. C#重启远程计算机的一些理论知识:   C#实现启动远程计算机的原理是"视窗管理规范"。就是所谓的"WMI"(W 阅读全文
posted @ 2007-03-24 14:11 leonardleonard 阅读(188) 评论(0) 推荐(0)
摘要:摘要 想必大家对小榕时光等扫描器都非常熟悉了,有没有自己写一个的冲动。最近微软推实施了.NET战略方案,C#是主推语言,你们是否有兴趣用C#来实现对局域网IP地址的扫描,尝试一下自己写的快乐,那么请跟我来。 正文 1.先介绍一下使用的类: DNS类:在.net中的System.net命名空间下,主要的功能是从 Internet 域名系统 (DNS) 检索关于特定主机的信息。 IPHostEntry类:将一个域名系统 (DNS) 主机与一组别名和一组匹配的 IP 地址关联,和DNS类一起使用。 IPAddress 类:IP 网络上的地址。 使用的命名空间有: System.Net 命名空间为当前 阅读全文
posted @ 2007-03-24 14:09 leonardleonard 阅读(192) 评论(0) 推荐(0)
摘要:当数据转换到asp.net页面时,大部分都是以文本的形式存在的。有时候为了输出,单单使用显示或者隐式转换都是不行的,就需要本节说到的数据转换。字符串输出:int intAge=21;string strAge=intAge.ToString();转换DateTime值时,可以通过在括号内放置一个可选的参数来指定时间的输出样式。eg:dateCou.ToString(“d“);格式化代码及其含意:D——以下列格式给出日月年:Thursday,september 21,2001G——09/22/2001 09:12:23T——给出时间:01:23:22 时 分 秒t——给出时分:01:23d——m 阅读全文
posted @ 2007-03-24 14:07 leonardleonard 阅读(176) 评论(0) 推荐(0)
摘要:1、大小写区别2、在C#中的布尔类型为bool,而JAVA为boolean3、C#有一个不安全模式,在此模式之下可以使用指针4、有枚举类型5、代理和索引器6、运算符重载7、没有throws关键字下面开始C#之行。在开始学习C#之前,先了解下C#语句的特点:1. C#是区别大小。2. 每一句都以分号结束,不象VB.NET。3. 多个语句通过分号可以写在一行,不过不推荐,因为不清晰。OK,开始了。先了解下其数据类型:booltrue或falsebyte8位无符号整数short16位整数int32位整数long64位整数float32位浮点数double64位浮点数char16位字符string多个 阅读全文
posted @ 2007-03-24 14:03 leonardleonard 阅读(233) 评论(0) 推荐(0)
摘要:数组是我们经常用到的,我来介绍一下:数组是具有相同类型的一组数据。当访问数组中的数据时,可以通过下标来指明。c#中数组元素可以为任何数据类型,数组下标从0开始,即第一个元素对应的下标为0,以后逐个递增。数组可以一维也可多维。 //包含6个元素的一维整数数组; int[] mf1=new int[6]; //注意初始化数组的范围,或者指定初值; //包含6个元素的一维整数数组,初值1,2,3,4,5,6 int[] mf2=new int[6]{1,2,3,4,5,6}; //一维字符串数组,如果提供了初始值设定项,则还可以省略 new 运算符 string[] mf3={"c","c++"," 阅读全文
posted @ 2007-03-24 14:02 leonardleonard 阅读(217) 评论(0) 推荐(0)
摘要:class TestArraysClass { static void Main() { // Declare a single-dimensional array int[] array1 = new int[5]; // Declare and set array element values int[] ar... 阅读全文
posted @ 2007-03-24 13:59 leonardleonard 阅读(156) 评论(0) 推荐(0)
摘要:using System;using System.Collections;using System.Text;public class SamplesHashtable{public static void Main(){// Create and initialize a new Hashtable.Hashtable table = new Hashtable();//Student Name, Gradetable.Add("Jay", 100);table.Add("Brian", 87);table.Add("Rajesh", 92);table.Add("Bill", 76);t 阅读全文
posted @ 2007-03-24 13:57 leonardleonard 阅读(113) 评论(0) 推荐(0)
摘要:在C#中目前我还没有找到发送消息的类成员函数,所以只能采用通过调用WIN 32 API 的 SendMessage() 函数实现。由于 SendMessage的参数中需要得到窗体的句柄(handler) ,所以又要调用另一个API FindWindow(), 两者配合使用,达到在不同窗体之间的消息发送和接收功能。另外一个要点是,需要通过重写(Override) 窗体的 DefWndProc() 过程来接收自定义的消息。DefWndProc 的重写:protected override void DefWndProc(ref System.Windows.Forms.Message m){swi 阅读全文
posted @ 2007-03-24 13:56 leonardleonard 阅读(322) 评论(0) 推荐(0)
摘要:本节课通过介绍几个简单的程序,使得你对C#有所入门。本节程要达到如下几个目的:1.理解一个C#程序的基本结构。2.初步了解"名称空间"的概念。3.初步了解"类"的概念。4.了解"Main"方法所做的工作。5.学会如何读取命令行输入信息。6.学会使用控制台输入/输出 (I/O)语句。1.清单1-1. 一个简单的欢迎程序Welcome.cs // Namespace Declarationusing System;// Program start classclass WelcomeCSS {// Main begins program execution.public static void M 阅读全文
posted @ 2007-03-24 13:54 leonardleonard 阅读(245) 评论(0) 推荐(0)
摘要:本节课将介绍如何使用C#选择控制语句,第三课将达到如下几个目的:1.学会"if"语句的用法。2.学会"switch"语句的用法。3.学会在"switch"语句中如何使用"break"语句。4.理解"goto"语句的正确用法。在前面几节课中,你所看到的程序都是顺序执行的。你无法控制输入语句,你所能做的就是跟着程序执行直到终止。本节课中,将介绍基于条件进行判断,从而选择进入相应的逻辑分支中去执行。我们所介绍的第一个选择语句是"if"语句,它有三种基本形式:单条选择, 如果/否则,以及多情形选择。1.清单3-1. IF语句的格式:IfSelection.cs using System;class I 阅读全文
posted @ 2007-03-24 13:53 leonardleonard 阅读(263) 评论(0) 推荐(0)
摘要:本节课将介绍如何使用C#控制语句中的循环语句,本课目的如下:1.学会"while"循环的用法。2.学会"do" 循环的用法。3.学会"for" 循环的用法。4.学会foreach循环的用法。5.进一步了解"break"语句的用法。6.如何使用"continue"语句。在C#中,使用"goto"语句并不是一个最佳的建立循环的方法。本节课将介绍建立循环的常用方法。第一个要介绍的语句是while循环语句1.清单 4-1. While循环:While loop.cs using System;class Whileloop {public static void Main() {int myInt = 阅读全文
posted @ 2007-03-24 13:52 leonardleonard 阅读(527) 评论(0) 推荐(0)
摘要:本节课将介绍C# 语言的表达式,类型和变量。本节课要达到如下几个目的:1.了解什么是"变量"2.学习C#的简单类型3.对C#表达式有个初步的了解4.了解什么是String类型5.学习如何使用数组"变量"仅仅是数据的存储位置。你可以把数据存放到其中,或者从中取出来作为C#表达式的一部分。变量中所存放的数据的含义是通过类型来控制的。C#是个强类型(???)的语言。这样,一切对变量的操作都是针对该变量的类型而进行的。为了保证变量中所存放数据的合法性和一致性,对不同类型的变量进行操作有相应的规则。C#语言的简单类型包含布尔类型和三种数值类型:整型,浮点型和小数。1.清单1-1 显示布尔值:Boolea 阅读全文
posted @ 2007-03-24 13:51 leonardleonard 阅读(269) 评论(0) 推荐(0)
摘要:本节课向你介绍C#的方法,其目的是:1.了解方法的结构格式2.了解静态和实例方法之间的区别3.学会实例对象的使用4.学会如何调用实例化的对象5.学会方法的四种参数类型的使用6.学会使用"this"引用以往,对于每个程序来说,所有的工作都在Main()方法中实现。这对于功能简单的程序是合适的,因为仅仅用来学习一些概念。有个更好的方法来组织你的程序,那就是使用方法。方法是很有用的,因为方法可以让你在不同的单元中分开设计你的逻辑模块。方法的结构格式如下:属性 修饰符 返回值类型 方法名(参数) { 语句 } 我们将在后面的课程中,讨论属性和修饰符。方法的返回值可以是任何一种C#的数据类型,该返回值可 阅读全文
posted @ 2007-03-24 13:50 leonardleonard 阅读(218) 评论(0) 推荐(0)
摘要:本节课将介绍C#的属性,其目的包括:1.理解什么是属性2.如何实现属性3.创建一个只读属性4.创建一个只写属性属性是C#中独具特色的新功能。通过属性来读写类中的域,这具有一定的保护功能。在其它语言中,这是通过实现特定的getter和setter方法来实现的。C#的属性具有保护功能,可以让你就象访问域一样访问属性。要了解属性的用法,我们先来看看如何用传统的方法对域进行封装。1.清单 10-1. 传统的访问类的域的例子:Accessors.cs using System;public class PropertyHolder{private int someProperty = 0;public 阅读全文
posted @ 2007-03-24 13:49 leonardleonard 阅读(171) 评论(0) 推荐(0)
摘要:本节课将介绍C#中的类,其目的如下:1.了解构造函数的实现2.了解实例和静态成员的区别3.了解析构函数的使用4.熟悉类的成员类型在本教程的一开始,你就已经接触到类的用法了。现在,既然已经对类有了感性认识,并知道如何定义一个类,本节课将定义类的格式是:关键字"Class"后面跟着类名,类名之后的大括号中包含的是类的成员。构造函数没有返回值,且与类同名。清单7-1是一个关于类的例子。清单 7-1. Example C# Classes: Classes.cs // Namespace Declarationusing System;// helper classclass OutputClass 阅读全文
posted @ 2007-03-24 13:48 leonardleonard 阅读(167) 评论(0) 推荐(0)
摘要:本节课将介绍C#的多态性,其目的包括:1.了解什么是多态性2.如何定义一个虚方法3.如何重载一个虚方法4.如何在程序中运用多态性面向对象程序设计中的另外一个重要概念是多态性。在运行时,可以通过指向基类的指针,来调用实现派生类中的方法。 可以把一组对象放到一个数组中,然后调用它们的方法,在这种场合下,多态性作用就体现出来了,这些对象不必是相同类型的对象。当然,如果它们都继承自某个类,你可以把这些派生类,都放到一个数组中。 如果这些对象都有同名方法,就可以调用每个对象的同名方法。本节课将向你介绍如何完成这些事情。1.清单9-1. 带有虚方法的基类:DrawingObject.cs using Sy 阅读全文
posted @ 2007-03-24 13:47 leonardleonard 阅读(124) 评论(0) 推荐(0)
摘要:本节课将介绍C#中的继承,其目的如下: 1.基类的实现 2.类的继承 3.在派生类中初始化基类 4.如何调用基类成员 5.如何覆盖基类成员 继承是面向对象程序设计的主要特征之一,它可以让你重用代码,可以节省程序设计的时间。 1.清单8-1 继承: BaseClass.cs using System;public class ParentClass{public ParentClass(){Console.WriteLine("Parent Constructor.");}public void print(){Console.WriteLine("I'm a Parent Class.");} 阅读全文
posted @ 2007-03-24 13:47 leonardleonard 阅读(340) 评论(0) 推荐(0)
摘要:大家还是要常用用csc,个人感觉有时vs有不少不太方便的东西。C:\csc /help |more Microsoft (R) Visual C# 编译器版本7.00.9254 [CLR version v1.0.2914] 版权所有 (C) Microsoft Corp 2000-2001。保留所有权利。 Visual C# 编译器选项 - 输出文件 - /out:文件输出文件名(如果未指定,则从第一个源文件派生) /target:exe生成控制台可执行文件(默认) (缩写: /t:exe) /target:winexe生成 Windows 可执行文件 (缩写: /t:winexe) 阅读全文
posted @ 2007-03-24 13:46 leonardleonard 阅读(158) 评论(0) 推荐(0)
摘要:要想完成这个功能,首先要了解一下在C#中如何调用API(应用程序接口)函数。虽然在.Net框架中已经提供了许多类库,这些类库的功能也十分强大,但对于一些Windows底层编程来说,还是要通过调用这些API函数才可以实现。所有API都在"Kernel"、"User "和"GDI"三个库中得以运行:其中"Kernel",他的库名为 "KERNEL32.DLL", 他主要用于产生与操作系统之间的关联,譬如:程序加载,上下文选择,文件输入输出,内存管理等等。"User "这个类库在Win32中名叫 "USER32.DLL"。 它允许管理全部的用户接口。譬如:窗口 、菜单 、对话框 、图标等等。"GDI 阅读全文
posted @ 2007-03-24 13:44 leonardleonard 阅读(222) 评论(0) 推荐(0)
摘要:☆C#的运算符定义只有四种形式:---------------------------------------①public static 返回类型 operator ?(单形参)②public static 返回类型 operator ?(双形参)③public static implicit operator 隐转目标类型(单源类型形参)④public static explicit operator 显转目标类型(单源类型形参)△全部都是传值,故不可用ref和out参数△全部都是static△比较运算符的重载必须贯彻成对一起定义的原则来实现C#的一站式编码△true()和false()也 阅读全文
posted @ 2007-03-24 13:42 leonardleonard 阅读(169) 评论(0) 推荐(0)
摘要:ref和out关键字初解参数可以通过引用和值传递给方法。通过引用传递给方法的变量可以有调用它的方法作自由改变,所作的修改会影响原来的变量的值;在C#中,除非特别说明,所有的参数都是值传递。这是默认情况,也可以使用ref关键字,迫使值参数通过引用传递给方法,则给方法对变量所作的修改都会影响原来对象的值。在定义该方法时把该参数定义为ref后,在调用该方法时,还需要添加ref关键字。static void myFun(int x,ref int y){y = x;}//调用该方法myFun(x,ref y);有时为了从一个函数中返回多个值,我们需要使用out关键字,把输出值赋给通过引用传递给方法的变 阅读全文
posted @ 2007-03-24 13:40 leonardleonard 阅读(156) 评论(0) 推荐(0)
摘要:在.Net Framework SDK文档中,关于调用Windows API的指示比较零散,并且其中稍全面一点的是针对Visual Basic .net讲述的。本文将C#中调用API的要点汇集如下,希望给未在C#中使用过API的朋友一点帮助。另外如果安装了Visual Studio .net的话,在C:\Program Files\Microsoft Visual Studio .NET\FrameworkSDK\Samples\Technologies\Interop\PlatformInvoke\WinAPIs\CS目录下有大量的调用API的例子。一、调用格式using System.Ru 阅读全文
posted @ 2007-03-24 13:39 leonardleonard 阅读(159) 评论(0) 推荐(0)
摘要:引言  本文我将介绍在三层Web体系开发中的两种数据绑定模式,然后在不超过你已经会用的控件知识的情况下,来介绍能够极大减少这种数据绑定模式的替代品--XLib库文件。具体的说,本文开始我们介绍在三层体系结构里常规的数据绑定方法,然后介绍XLib是如何提高这种绑定效率的。   1、 数据绑定流程  在三层Web体系结构里,通常有四步来完成数据绑定任务:  1)从数据库里加载数据到业务逻辑对象  2)在Web窗体上放置Web控件并使用业务逻辑对象进行填充数据。  3)将Web控件的值拷贝到业务逻辑对象的属性里  4)保存业务逻辑对象的属性值到数据库。  以具体的Customer为例,在三层应用程序 阅读全文
posted @ 2007-03-24 13:38 leonardleonard 阅读(191) 评论(0) 推荐(0)
摘要:通过使页面动态加载不同CSS实现多界面 方法一: %@page language="C#"% %@import namespace="System.Data"% script language="c#" runat="server" public void page_load(Object obj,EventArgs e) { //创建服务器端控件. //指定的标记"LINK"初始化此类的新实例. HtmlGenericControl objLink=new HtmlGenericControl("LINK"); objLink.ID=ID; objLink.Attributes[ 阅读全文
posted @ 2007-03-24 13:34 leonardleonard 阅读(105) 评论(0) 推荐(0)
摘要:1.c#中什么情况下用(int)什么情况下用Convert.ToInt32 ?比如说有一个string型的3 ,要给它转换成int型的是用(int)3 ,还是用Convert.ToInt32(3); 还是两个都可以用,为什么?解答:这两个都是转换成整型的,只是它们的长度不同。int为16位的,而下面的那个是32位的首先,我要指出的是,在 C# 中,int 其实就是 System.Int32,即都是32位的。 其次,(int) 和 Convert.ToInt32 是两个不同的概念,前者是类型转换,而后者则是内容转换,它们并不总是等效的。我们很清楚 C# 提供类型检查,你不能把一个 string 阅读全文
posted @ 2007-03-24 13:32 leonardleonard 阅读(164) 评论(0) 推荐(0)
摘要:一个投票功能模块少不了查看投票结果,用进度条显示各个投票结果可以起到一目了然的效果。以下是我的方法,请大家不吝赐教:   1:做一张图片用于做进度条,只需要很小的一个图片就可以了,如高20px,宽1px。   2:在要显示进度条的单元格中插入image控件,其imageUrl设置为已做好的图片的位置。   3:用一个dataReader对象dr保存取出的各项票数,用一个int 型变量sum保存取出的总票数,各项分别再定义一个double型变量用来保存单项票数除以(/)总票数的结果(小数),再定义一个int型的变量来保存最终要显示的进度条的长度(用前面那个double型变量*用来显示进度条的单元 阅读全文
posted @ 2007-03-24 13:31 leonardleonard 阅读(147) 评论(0) 推荐(0)
摘要:这两天因为要做一个可以收集用户提交信息,然后发送邮件到指定邮箱的网页。在 asp.net 2.0 里面发送邮件可以使用 System.Net.Mail 下面的类。http://www.systemnetmail.com/faq/2.1.aspx 这个地址有 System.Net.Mail 的作者写的仿佛是 MSDN 类似的 Faq,看代码的时候可以参考以下。什么都不说了,下面贴出来代码吧,毕竟代码是最重要的: 1protected void btnSend_Click(object sender, EventArgs e)2 {3 MailMessage mailMessage = new M 阅读全文
posted @ 2007-03-24 13:28 leonardleonard 阅读(117) 评论(0) 推荐(0)
摘要:关于图片盗链这个问题,毕竟是自己的劳动成功,很多人不希望别人就那么轻易地偷走了。 这个功能在很多的论坛上都具有,可能是因为盗链的行为太多了吧 反盗链的程序其实很简单,熟悉ASP.NET 应用程序生命周期的话很容易就可以写一个,运用HttpModule在BeginRequest事件中拦截请求就ok了,剩下的工作就是过滤,再过滤! 如果不熟悉HttpModule的话,可以去MSDN上查阅,介绍非常详细,地址:ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.chs/dv_aspnetcon/html/f1d2910f-61d0-4541-8 阅读全文
posted @ 2007-03-24 13:25 leonardleonard 阅读(123) 评论(0) 推荐(0)
摘要:ASP.NET 2.0的主题和皮肤特性使你能够把样式和布局信息存放到一组独立的文件中,总称为主题(Theme)。接下来我们可以把这个主题应用到任何站点,用于改变该站点内的页面和控件的外观和感觉。通过改变主题的内容,而不用改变站点的单个页面,就可以轻易地改变站点的样式。主题也可以在开发者之间共享。   ASP.NET包含了大量的用于定制应用程序的页面和控件的外观和感觉的特性。控件支持使用Style(样式)对象模型来设置格式属性(例如字体、边框、背景和前景颜色、宽度、高度等等)。控件也支持使用样式表(CSS)来单独设置控件的样式。你可以用控件属性或CSS来定义控件的样式信息,或者把这些定义信息存放 阅读全文
posted @ 2007-03-24 13:17 leonardleonard 阅读(156) 评论(0) 推荐(0)
摘要:!--Main.Aspx--%@ page language="C#" %%@ import namespace=System.IO %script runat="server"protected override void OnInit (EventArgs e){  int id;  try  {    id = int.Parse (Request.QueryString["id"]);  }  catch  {    throw (new Exception ("页面没有指定id"));  }    string filename=Server.MapPath("sta 阅读全文
posted @ 2007-03-24 13:14 leonardleonard 阅读(88) 评论(0) 推荐(0)
摘要:代码如下:input type=button value=刷新 onclick="history.go(0)" 代码如下:input type=button value=刷新 onclick="location.reload()" 代码如下:input type=button value=刷新 onclick="location=location"代码如下:input type=button value=刷新 onclick="window.navigate(location)" 代码如下:input type=button value=刷新 onclick="locatio 阅读全文
posted @ 2007-03-24 13:13 leonardleonard 阅读(114) 评论(0) 推荐(0)
摘要:任何编写过图形用户界面(GUI)软件的开发人员都熟悉事件处理编程,当用户与GUI控制进行交互时(例如点击表格上的按钮),作为上述事件的反应,就会执行一个或多个方法。没有用户的参与,事件也可能执行。事件处理程序是对象的方法,是根据应用程序中发生的事件而执行的。为了理解.Net框架下的事件处理模式,我们需要理解代理的概念。 C#中的代理 C#中的代理允许我们将一个类中的方法传递给其他类的对象。我们能够将类A中的方法m封装为一个代理,传递给类B,类B能够调用类A中的方法m,静态和实例方法都可以传送。C++软件开发人员应该对这一概念非常熟悉,在C++中,开发人员能够以参数的形式使用函数指针将函数传递给 阅读全文
posted @ 2007-03-24 13:12 leonardleonard 阅读(128) 评论(0) 推荐(0)
摘要:其目的包括: 1.了解什么是索引指示器 2.如何实现索引指示器 3.重载索引指示器 4.了解如何实现多参数的索引指示器 索引指示器并不难使用。它们的用法跟数组相同。在一个类内部,你可以按照你的意愿来管理一组数据的集合。这些对象可以是类成员的有限集合,也可以是另外一个数组,或者是一些复杂的数据结构。不考虑类的内部实现,其数据可以通过使用索引指示器来获得。如下是一个例子: 1.清单 11-1. 索引指示器的例子:IntIndexer.cs using System;/// /// A simple indexer example./// class IntIndexer{private strin 阅读全文
posted @ 2007-03-24 13:06 leonardleonard 阅读(124) 评论(0) 推荐(0)
摘要:在网上看了许多能生成静态页的新闻系统,但基于asp.net的系统极少,闲下时间来自己写了一个,发出来,大家一起研究,代码没做什么优化,只是实现了功能using System;using System.Collections;using System.ComponentModel;using System.Data;using System.Data.OleDb;using System.Drawing;using System.Web;using System.Web.SessionState;using System.Web.UI;using System.Web.UI.WebControl 阅读全文
posted @ 2007-03-24 13:05 leonardleonard 阅读(120) 评论(0) 推荐(0)
摘要:前些日子,有很多朋友说需要C#导出到Excel的代码,现共享给大家/// summary/// 读取Excel文档/// /summary/// param name="Path"文件名称/param/// returns返回一个数据集/returnspublic DataSet ExcelToDS(string Path){string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source="+ Path +";"+"Extended Properties=Excel 8.0;";OleDbConnec 阅读全文
posted @ 2007-03-24 12:59 leonardleonard 阅读(125) 评论(0) 推荐(0)
摘要:首先介绍一下常用的几个功能:Compare(str1,str2)——比较两个字符串 str1,str2的大小,如果大于返回正数,等于返回0,小于返回负数!IndexOf——定位字符串中第一次出现某个给定字符串的位置PadLeft和PadRight——在字符串的开始和结尾用指定的字符填充字符串ToLower和ToUpper把字符串转换为小写或大写形式Trim——删除首尾空白String.Replace——用指定的字符替换字符串中的指定字符。C#中字符串的建立过程:例如定义变量 strT="Welcome to ";strT+="www.csdn.net";程序首先创建一个System.Strin 阅读全文
posted @ 2007-03-24 12:56 leonardleonard 阅读(158) 评论(0) 推荐(0)
摘要:using System;namespace ConsoleApplication1{ /// summary /// Class1 的摘要说明。 /// /summary class Class1 { /// summary /// 应用程序的主入口点。 /// /summary [STAThread] static void Main(string[] args) { MinToMax mtm = new MinToMax(); int[] array = { 1, 2, 6, 3, 8, 3, 4, 0, 5, 23, 52, 12, 234, 235, 1232, 21 阅读全文
posted @ 2007-03-24 12:54 leonardleonard 阅读(1108) 评论(0) 推荐(0)
摘要:要序列化的对象的类:[Serializable]publicclassPerson{privatestringname;publicstringName{get{returnname;}set{name=value;}}publicstringSex;publicintAge=31;publicCourse[]Courses;publicPerson(){}publicPerson(stringName){name=Name;Sex="男";} }[Serializable]publicclassCourse{publicstringName;[XmlIgnore]publicstringDe 阅读全文
posted @ 2007-03-24 12:50 leonardleonard 阅读(131) 评论(0) 推荐(0)
摘要:/**Author:Junyi Sun @CCNU* E-mail:fxsjy@yahoo.com.cn*/using System;namespace sunjoy{ public class Queen { public static int Main() { int board_size = 0,x=0,y=0;//棋盘大小,当前行,当前列 uint solution_count = 0; //皇后摆放方案的个数 int[] rows, cols, slot1, slot2, x2y;//行占用情况,列占用情况,“/”状斜线占用情况,“\”状斜线占用情况,皇后坐标 DateTime t_ 阅读全文
posted @ 2007-03-24 12:49 leonardleonard 阅读(123) 评论(0) 推荐(0)
摘要:现有题号称爱因斯坦出的智力题全世界只有2%能够做出。------------------------------------------------1、在一条街上,有5座房子,喷了5种颜色。2、每个房里住着不同国籍的人3、每个人喝不同的饮料,抽不同品牌的香烟,养不同的宠物问题是:谁养鱼?提示:1、英国人住红色房子2、瑞典人养狗3、丹麦人喝茶4、绿色房子在白色房子左面5、绿色房子主人喝咖啡6、抽PallMall香烟的人养鸟7、黄色房子主人抽Dunhill香烟8、住在中间房子的人喝牛奶9、挪威人住第一间房10、抽Blends香烟的人住在养猫的人隔壁11、养马的人住抽Dunhill香烟的人隔壁12、 阅读全文
posted @ 2007-03-24 12:48 leonardleonard 阅读(145) 评论(0) 推荐(0)
摘要:制作异形窗体或控件的思路一般都是想办法生成一个region,然后设置给指定的窗口或控件。生成region的方法有很多,最常用的就是从一幅图片生成,把该图片中的透明色部分“抠”掉,剩下的部分作为一个region。设置窗口或控件的region可以用SetWindowRgn API,不过.NET framework封装了这个操作,在C#中只要对窗口或控件的Region属性赋值就可以了。下面我就把我在C#中实现异形窗体的核心代码贴出来给大家看看,有什么意见尽管提,别客气哦J首先,是一个根据Bitmap对象生成Region的方法:/// summary/// 取得一个图片中非透明色部分的区域。/// 阅读全文
posted @ 2007-03-24 12:47 leonardleonard 阅读(222) 评论(0) 推荐(0)
摘要:一、在客户端把数据导入到Excel文件步骤1、创建Excel application对象,打开或生成Excel文件//服务端创建StringBuilder对象 System.Text.StringBuilder sb=new System .Text .StringBuilder (); //指定客户端执行语言sb.Append ("Script Language=VBScript"); sb.Append ("!--\r\n"); sb.Append ("dim xls\r\n"); //创建Excel application对象 sb.Append ("Set xls=Cre 阅读全文
posted @ 2007-03-24 12:46 leonardleonard 阅读(404) 评论(0) 推荐(0)
摘要:/* Filename: encrypt_string.cs Author: zhanghua Date: 2005-08-11 Fuction : input a strig and encrypt a string 加密后的字符串的第一个字符是原先字符串的最后一个字符, 其余的每一个字符是对应的原字符串中的前一个字符的值加 上3。 example: welcome - ezhofrp */using System;class Test{public static void Main(){string strInput, strOutput;Console.WriteLine("ple 阅读全文
posted @ 2007-03-24 12:44 leonardleonard 阅读(195) 评论(0) 推荐(0)
摘要:实现方式:利用Microsoft.win32类提供的注册表类访问系统注册表获取ODBC数据服务列表。具体实现: Microsoft.win32提供了RegistryKey类,用来访问系统的注册表。 ///定义注册表子Path string strRegPath = @"SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources"; ///创建两个RegistryKey类,一个将指向RootPath,另一个将指向子Path RegistryKey regRootKey; RegistryKey regSubKey; ///定义Root指向注册表HKEY_LOCAL_MACH 阅读全文
posted @ 2007-03-24 12:43 leonardleonard 阅读(316) 评论(0) 推荐(0)
摘要:checked和unchecked操作符用于整型算术运算时控制当前环境中的溢出检查。下列运算参与了checked和unchecked检查(操作数均为整数):1) 预定义的++和――一元运算符。2) 预定义的-一元运算符。3) 预定义的+、-、×、/等二元操作符。4) 从一种整型到另一种整型的显示数据转换。当上述整型运算产生一个目标类型无法表示的大数时,可以有相应的处理方式:(一)使用checked若运算是常量表达式,则产生编译错误:The operation overflows at complie time in checked mode.若运算是非常量表达式,则运行时会抛出一个溢出异常:O 阅读全文
posted @ 2007-03-24 12:38 leonardleonard 阅读(139) 评论(0) 推荐(0)
摘要:装箱和拆箱:任何值类型、引用类型可以和object(对象)类型之间进行转换。装箱转换是指将一个值类型隐式或显式地转换成一个object类型,或者把这个值类型转换成一个被该值类型应用的接口类型(interface-type)。把一个值类型的值装箱,就是创建一个object实例并将这个值复制给这个object,装箱后的object对象中的数据位于堆中,堆中的地址在栈中。被装箱的类型的值是作为一个拷贝赋给对象的。如:int i = 10;object obj = i; //隐式装箱object obj = object(i); //显式装箱if(obj is int) //int Console.W 阅读全文
posted @ 2007-03-24 12:36 leonardleonard 阅读(143) 评论(0) 推荐(0)
摘要:C#中方法的参数有四种类型:-值参数:不含任何修饰符。方法中的形参是实参的一份拷贝,形参的改变不会影响到内存中实参的的值,实参是安全的。-引用参数:以ref修饰符声明。传递的参数实际上是实参的指针,所以在方法中的操作都是直接对实参进行的,而不是复制一个值;可以利用这个方式在方法调用时双向传递参数;为了以ref方式使用参数,必须在方法声明和方法调用中都明确地指定ref关键字,并且实参变量在传递给方法前必须进行初始化。-输出参数:以out修饰符声明。和ref类似,它也是直接对实参进行操作。在方法声明和方法调用时都必须明确地指定out关键字。out参数声明方式不要求变量传递给方法前进行初始化,因为它 阅读全文
posted @ 2007-03-24 12:36 leonardleonard 阅读(154) 评论(0) 推荐(0)
摘要:在C#中使用一个类时,分两个阶段。首先需要定义这个类,即告诉编译器这个类由什么字段和方法组成。然后(除非只使用静态方法)实例化类的一个对象。使用委托时,也需要经过这两个步骤。首先定义要使用的委托,对于委托,定义它就是告诉编译器这种类型代表了那种类型的方法,然后创建该委托的一个或多个实例。定义委托是从delegate开始的然而它是如何运作的呢。也许弄个鼠标事件会容易理解一些,这里还是拿出例子来。 using System;namespace Wrox.ProfCSharp.AdvancedCSharp{ delegate bool CompareOp(object lhs, object rhs 阅读全文
posted @ 2007-03-24 12:35 leonardleonard 阅读(126) 评论(0) 推荐(0)
摘要:有些书上也称“代表”。C#中取消了指针的概念。对指针恋恋不舍的程序员可以有两种解决方法:声明“非安全”(unsafe)代码段然后在其中使用指针或者使用C#的一个引用类型——“代理”(delegate)。“代理”相当与C中的函数指针原型,区别是C#是类型安全的。“代理”(delegate)(代表、委托):“代理”是类型安全的并且完全面向对象的。(1)在C#中,所有的代理都是从System.Delegate类派生的(delegate是System.Delegate的别名)。(2)代理隐含具有sealed属性,即不能用来派生新的类型。(3)代理最大的作用就是为类的事件绑定事件处理程序。(4)在通过代 阅读全文
posted @ 2007-03-24 12:33 leonardleonard 阅读(130) 评论(0) 推荐(0)
摘要:我感觉声音的播放比较简单。我们从播放声音开始。为什么我这么觉得?我也不知道。这里是展示最最最最最简单的DirectX播放声音的例子,我尽量省略了无关的代码。最后的代码只有19行,够简单了吧?准备工作:1.安装了DirectX SDK(有9个DLL文件)。这里我们只用到MicroSoft.DirectX.dll 和 Microsoft.Directx.DirectSound.dll2.一个WAV文件。(这样的文件比较好找,在QQ的目录里就不少啊。这里就不多说了。)名字叫SND.WAV,放在最后目标程序的同个目录下面开始写程序啦。随便用个UltraEdit就好了。1.引入DirectX 的DLL文 阅读全文
posted @ 2007-03-24 12:32 leonardleonard 阅读(617) 评论(0) 推荐(0)
摘要:VB.NET中还是有很多有用的东西的。比如VB.NET可以直接调用Microsoft.VisualBasic命名空间下的各种有用的函数,特别是一些类型验证函数(IsDate,IsNumeric)就十分有用。就拿判断是否为数字来说,在网上我找到了在C#中用到的三种方法(但都有各自的不足之处):1、将字符串分解成Char,然后用Char.IsNumber(c)验证 public bool IsNumericChar(string str){ if (str == null || str.Length==0) { return false; } foreach(char c in str) { 阅读全文
posted @ 2007-03-24 12:29 leonardleonard 阅读(167) 评论(0) 推荐(0)
摘要:,.NET Framework 1.0 或 1.1 版类库中存在任何 Windows 所没有的功能限制都不足为怪。毕竟,32 位的 Windows(不管何种版本)是一个成熟的操作系统,为广大客户服务了十多年。相比之下,.NET Framework 却是一个新事物。随着越来越多的开发人员将生产应用程序转到托管代码,开发人员更频繁地研究底层操作系统以图找出一些关键功能显得很自然 — 至少目前是如此。值得庆幸的是,公共语言运行库 (CLR) 的 interop 功能(称为平台调用 (P/Invoke))非常完善。在本专栏中,我将重点介绍如何实际使用 P/Invoke 来调用 Windows API 阅读全文
posted @ 2007-03-24 12:27 leonardleonard 阅读(224) 评论(0) 推荐(0)
摘要:(1)用于对静态字段、只读字段等的初始化。        (2)添加static关键字,不能添加访问修饰符,因为静态构造函数都是私有的。     (3)类的静态构造函数在给定应用程序域中至多执行一次:只有创建类的实例或者引用类的任何静态成员才激发静态构造函数 (4)静态构造函数是不可继承的,而且不能被直接调用。       (5)如果类中包含用来开始执行的Main方法,则该类的静态构造函数将在调用Main方法之前执行。   任何带有初始值设定项的静态字段,则在执行该类的静态构造函数时,先要按照文本顺序执行那些初始值设定项。  (6)如果没有编写静态构造函数,而这时类中包含带有初始值设定的静态字 阅读全文
posted @ 2007-03-24 12:25 leonardleonard 阅读(156) 评论(0) 推荐(0)
摘要:如果需要考虑如时间的过滤、其他条件的加入,可以在SQL语句进行编辑,普通的网站,下面的数据浏览分页就可以了。aspx代码:%@ Page language="c#" Codebehind="StockOrderFormBrower.aspx.cs" AutoEventWireup="false" Inherits="GSP.StockOrderFormBrower" %!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" HTMLHEADtitle用C#和SQL结合进行数据浏览分页/titleLINK 阅读全文
posted @ 2007-03-24 12:24 leonardleonard 阅读(131) 评论(0) 推荐(0)
摘要:在.Net平台下,创建一个ASP.Net的程序 1、引用两个NAMESPACE usingSystem.Text//因为用了Encoding类 usingSystem.Net//因为用了WebClient类 2、整个程序用了三个控件 txtUrl//输入你要获取的网页地址TEXTBOX控件 txtBody//得到你要获取的网页内容TEXTBOX控件 btnReturn//按钮BUTTON控件 3、在***.aspx.cs下的代码 privatevoidbtnReturn_Click(objectsender,System.EventArgse) { stringurl=txtUrl.Text. 阅读全文
posted @ 2007-03-24 12:22 leonardleonard 阅读(106) 评论(0) 推荐(0)
摘要:using System;using System.Drawing;using System.Windows;using System.Windows.Forms;using System.Collections;using System.ComponentModel;using System.Data;namespace comput{ /// summary /// 这是一个计算器的简单实现。 /// /summary public class Form1 : System.Windows.Forms.Form { #region 控件声明 private System.Wind 阅读全文
posted @ 2007-03-24 12:21 leonardleonard 阅读(191) 评论(0) 推荐(0)
摘要:Introduction你在代码中处理字符串的方法可能会对性能产生令人吃惊的影响。在本文中,我需要考虑两个由于使用字符串而产生的问题:临时字符串变量的使用和字符串连接。Background每个项目都有需要你为其考虑编码标准的时候。使用 FxCop 是一个好的开始。我最喜爱的一组 FxCop 规则是“性能”那组。于是,我就用 FxCop 来检查我的项目并发现一系列的字符串问题。我必须承认一件事:我经常遇到与 C# 的不可变(immutable)的字符串有关的问题。当我看到 myString.ToUpper() 时,我经常都会忘记它并不是改变 myString 的内容而是返回一整个全新的字符串(这 阅读全文
posted @ 2007-03-24 12:19 leonardleonard 阅读(141) 评论(0) 推荐(0)
摘要:这篇文章引用到了Microsoft .NET类库中的以下名空间:System.Data.SqlClientSystem.Web.Security-------------------------------任务:摘要: 1.要求    2.用Visual C#.NET 创建一个ASP.NET 应用程序3.在Web.config文件里配置安全设置4.创建一个数据库表样例来存放用户资料5.创建Logon.aspx页面6.编写事件处理代码来验证用户身份7.创建一个Default.aspx页面8.附加提示参考文章-------------------------------摘要 这篇文章示范了如何实现 阅读全文
posted @ 2007-03-24 12:18 leonardleonard 阅读(176) 评论(0) 推荐(0)
摘要:有两种方法:1.使用指针变量声明函数(或者使用数组变量)2.使用传出参数第一种方法:函数返回的是一个指针地址(数组地址),这个内存地址有多个变量寄存在里面。这个方法我不太会用,传地址传值我常常搞的淅沥糊涂。第二种方法:我用例子说明。首先声名一个函数,定义如下public bool CheckUser(string UserName, out string PassWord, Out int State){ if ( UserName == "123" ){ PassWord = "456";State = 0; } else {PassWord = "";State = 1; } return 阅读全文
posted @ 2007-03-24 12:15 leonardleonard 阅读(232) 评论(0) 推荐(0)
摘要:引用类型是类型安全的指针,它们的内存是分配在堆(保存指针地址)上的。String、数组、类、接口和委托都是引用类型。强制类型转换与as类型转换的区别:当类型转换非法时,强制类型转换将抛出一个System.InvalidCastException异常,而as不会抛出异常,它返回一个null值。用using创建别名:using console = System.Console;访问限定符:public该成员可以被其他任何类访问protected该成员只能被其派生类访问private该成员只能被本类的其他成员访问internal该成员只能在当前编译单元的其他成员访问带参数列表和返回值的Main方法: 阅读全文
posted @ 2007-03-24 12:14 leonardleonard 阅读(145) 评论(0) 推荐(0)
摘要:具体的需求是 在某一时间点,只有N个线程在并发执行,如果有多余的线程,则排队等候~还真是费尽心思啊~最终还是被我攻克了~下面我就来说说具体的实现C#提供了Mutex与Interlocked这两个与线程相关的类,都在Threading命名空间下~!Mutex中提供了WiteOne,ReleaseMutex 两个实例方法~WiteOne的作用是"阻塞当前线程,提供对该线程的原子操作"也就是说当一个线程遇到WiteOne的时候,如果在WiteOne里面没有线程在操作,则此线程进去操作而里面有线程的时候,所有到此的线程均需要排队等候里面的线程执行完毕~而控制这样操作的结束标记就是使用ReleaseMu 阅读全文
posted @ 2007-03-24 12:12 leonardleonard 阅读(118) 评论(0) 推荐(0)
摘要:1。我个人认为最好的分页方法是:Select top 10 * from table where id200写成存储过程,上面的语句要拼一下sql语句,要获得最后大于的哪一个ID号2。那个用游标的方式,只适合于小数据量的表,如果表在一万行以上,就差劲了你的存储过程还比不上NOT IN分页,示例:SELECT Top 10 * FROM Customers WHERE Customerid NOT IN (SELECT TOP 20 Customerid from Customers )declare @SQLStr varchar(8000)set @SQLStr='SELECT Top ' 阅读全文
posted @ 2007-03-23 23:04 leonardleonard 阅读(219) 评论(0) 推荐(0)
摘要:征集佳句-精妙SQL语句收集 SQL语句先前写的时候,很容易把一些特殊的用法忘记,我特此整理了一下SQL语句操作,方便自己写SQL时方便一点,想贴上来,一起看看,同时希望大家能共同多多提意见,也给我留一些更好的佳句,整理一份《精妙SQL速查手册》,不吝赐教!一、基础1、说明:创建数据库CREATE DATABASE database-name 2、说明:删除数据库drop database dbname3、说明:备份sql server--- 创建 备份数据的 deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7 阅读全文
posted @ 2007-03-23 23:04 leonardleonard 阅读(118) 评论(0) 推荐(0)
摘要:1将sql中使用的一些特殊符号,如' -- /* ; %等用Replace()过滤;2限制文本框输入字符的长度;3检查用户输入的合法性;客户端与服务器端都要执行,可以使用正则。4使用带参数的SQL语句形式。尽量用存储过程 阅读全文
posted @ 2007-03-23 22:52 leonardleonard 阅读(116) 评论(0) 推荐(0)
摘要://--身份证号码验证-支持新的带x身份证functionisIdCardNo(num){varfactorArr=newArray(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);varerror;varvarArray=newArray();varintValue;varlngProduct=0;varintCheckDigit;varintStrLen=num.length;varidNumber=num;//initializeif((intStrLen!=15)&&(intStrLen!=18)){//error="输入身份证号码长度不对!";//ale 阅读全文
posted @ 2007-03-23 22:34 leonardleonard 阅读(215) 评论(0) 推荐(0)
摘要://--需要引用usingSystem.Net以及usingSystem.IO;privatestringGetContentFromUrll(string_requestUrl){string_StrResponse="";HttpWebRequest_WebRequest=(HttpWebRequest)WebRequest.Create(_requestUrl);_WebRequest.Method="GET";WebResponse_WebResponse=_WebRequest.GetResponse();StreamReader_ResponseStream=newStreamRe 阅读全文
posted @ 2007-03-23 22:18 leonardleonard 阅读(119) 评论(0) 推荐(0)
摘要:!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"htmlxmlns="http://www.w3.org/1999/xhtml"headmetahttp-equiv="Content-Type"content="text/html;charset=gb2312"/title收藏的几个css按钮样式/title/headstyletable{width:95%;border:1px#E6D1 阅读全文
posted @ 2007-03-23 22:16 leonardleonard 阅读(131) 评论(0) 推荐(0)
摘要:usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Messaging;namespaceSuzsoft.Alarming.Service{///summary///MessageQueuehelperclass////summary///typeparamname="T"/typeparampublicclassMessageQueueHelperT:MarshalByRefObjectwhereT:class,new(){publicMessageQueueHelper(str 阅读全文
posted @ 2007-03-23 22:15 leonardleonard 阅读(219) 评论(0) 推荐(0)
摘要:using System;using System.Text;using System.Text.RegularExpressions;namespace HKH.Common{/// summary/// 人民币大小写格式转换/// /summary/// remarks Create By Lwt on 2006/09/23/// /remarkspublic class clsRMB{private clsRMB(){}#region 格式化/// summary/// 格式化(大写转小写)/// /summary/// param name="strRMB" 阅读全文
posted @ 2007-03-23 22:08 leonardleonard 阅读(317) 评论(0) 推荐(0)
摘要:1、类设计,EXCEL要据配置读入DATASETusing System;using System.Data;using System.Collections;using System.Data.OleDb;namespace HKH.Common{/// summary/// Excel 表格中 列标头 与 列索引 的对应转换/// /summary/// remarksCreate By Liwt on 2006 - 09 - 15/// /remarksenum EnumExcelColumn{A = 0,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R 阅读全文
posted @ 2007-03-23 22:06 leonardleonard 阅读(547) 评论(0) 推荐(0)
摘要:using System;using Microsoft.Win32;using System.Globalization;using System.Runtime;using System.Runtime.InteropServices;using System.Text;using System.IO; namespace HKH.Common{/// summary/// Summary description for clsIDE./// /summarypublic class clsIDE{/// summary/// 获取硬盘相应分区的序列号/// /summary 阅读全文
posted @ 2007-03-23 22:05 leonardleonard 阅读(215) 评论(0) 推荐(0)
摘要:Request.ServerVariables("HTTP_X_FORWARDED_FOR")透过代理服务器取得客户端的真实IP地址,有些用此方法读取到的仍然是代理服务器的IP。还有一点需要注意的是:如果客户端没有通过代理服务器来访问,那么取到的值将是空的。 Request.ServerVariables("Url")返回服务器地址 Request.ServerVariables("Path_Info")客户端提供的路径信息 Request.ServerVariables("Appl_Physical_Path")与应用程序元数据库路径相应的物理路径 Request.ServerVariabl 阅读全文
posted @ 2007-03-23 22:03 leonardleonard 阅读(146) 评论(0) 推荐(0)
摘要:DOS命令大全一)MD——建立子目录  1.功能:创建新的子目录 2.类型:内部命令 3.格式:MD[盘符:][路径名]〈子目录名〉 4.使用说明: (1)“盘符”:指定要建立子目录的磁盘驱动器字母,若省略,则为当前驱动器; (2)“路径名”:要建立的子目录的上级目录名,若缺省则建在当前目录下。 例:(1)在C盘的根目录下创建名为FOX的子目录;(2)在FOX子目录下再创建USER子目录。 C:、>MD FOX (在当前驱动器C盘下创建子目录FOX) C:、>MD FOX 、USER (在FOX 子目录下再创建USER子目录) (二)CD——改变当前目录 1.功能:显示当前目录 2.类型:内部 阅读全文
posted @ 2007-03-23 22:02 leonardleonard 阅读(253) 评论(0) 推荐(0)
摘要:文件传输软件的使用格式为:FTPFTP地址,若连 接成功,系统将提示用户输入用户名及口令:LOGIN: (输入合法的用户名或者“ANONMOUS”):PASSWORD: (输入合法的口令,若以“ANONMOUS”方式登录,一般不用口令):第一节 FTP命令基础进入想要连接的FTP站点后,用户就可以进行相应的文件传输操作了,其中一些重要 的命令及相似的命令 如下:1)HELP、 ?、RHEIP、REMOTEHELPHELP显示LOCAL端的命令说明,若不接受则显示所有可用命令;?相当于HELP,例如:?CD:RHELP同HELP,只是它用来显示REMOTE端的命令说明;REMOTEHELP相 阅读全文
posted @ 2007-03-23 22:00 leonardleonard 阅读(370) 评论(0) 推荐(0)
摘要:1.按姓氏笔画排序:Select * From TableName Order By CustomerName Collate Chinese_PRC_Stroke_ci_as 2.数据库加密:select encrypt('原始密码')select pwdencrypt('原始密码')select pwdcompare('原始密码','加密后密码') = 1--相同;否则不相同 encrypt('原始密码')select pwdencrypt('原始密码')select pwdcompare('原始密码','加密后密码') = 1--相同;否则不相同3.取回表中字段:declare @lis 阅读全文
posted @ 2007-03-23 21:58 leonardleonard 阅读(150) 评论(0) 推荐(0)
摘要:WMI使用技巧集 很多的朋友对WMI可能见过但理解不深,我也是十分想了解关于WMI的知识,可一直找不对太合适的资料,在网上的一些资料不是有很多错误,就是讲解不清,我有空的时候将关于WMI的知识集中一下,放在这里便于大家学习。本贴会不断增加。1、什么是WMIWMI是英文WindowsManagementInstrumentation的简写,它的功能主要是:访问本地主机的一些信息和服务,可以管理远程计算机(当然你必须要拥有足够的权限),比如:重启,关机,关闭进程,创建进程等。2、如何用WMI获得本地磁盘的信息?首先要在VS.NET中创建一个项目,然后在添加引用中引用一个.net的装配件:Syste 阅读全文
posted @ 2007-03-23 21:55 leonardleonard 阅读(210) 评论(0) 推荐(0)
摘要:.NET 框架中的 WMI 命名空间.NET框架中与WMI规范有关的命名空间有两个,分别是System.Management和System.Management.Instrumentation两个命名空间。其中System.Managemen命名空间提供的类对象为访问各种管理对象提供了面向对象的编程接口,而System.Management.Instrumentation命名空间提供的类用来设置用户自定义的应用程序,使得这些应用程序对象能够符合WMI的规范,从而通过WMI向使用该应用程序的管理者公开其提供的管理信息和事件,这些使用者有可能是Microsoft Application Cente 阅读全文
posted @ 2007-03-23 21:52 leonardleonard 阅读(335) 评论(0) 推荐(0)
摘要:管理对象的信息查询和方法访问在这一节内容,我们将通过几个实例来学习如何查询管理对象信息和访问管理对象提供的方法,这一部分内容将使用到我们在前面讲述到的System.Management命名空间中的相关类对象。管理对象的信息查询管理对象的信息查询有两种方式,一种是直接枚举管理对象的各种属性,而获取我们感兴趣的数据;一种方法是通过SQL查询语句的方式来过滤冗余的数据,而得到感兴趣的数据。对于一个Win32_LogicalDisk实例对象而言,它有那些属性,也就是它有那些信息可以供我们访问呢?这些属性名是什么样的?这是开发人员在开发过程中经常遇到的问题,通常我们是可以去查MSDN,但是在这里我给出一 阅读全文
posted @ 2007-03-23 21:51 leonardleonard 阅读(172) 评论(0) 推荐(0)
摘要:WMI事件概述对于从事Winows编程的开发人员来说,事件驱动的应用程序设计是再熟悉不过了,但是WMI中的事件又是一个什么样的概念呢?对于宝贵的内存和CPU资源,管理员需要不断的监视其性能;对于磁盘而言,我们需要随时知道它的使用情况,包括I/O性能,剩余空间等……操作系统中如此之多的管理对象需要管理员一刻不停的监视其运行的状态,这样的工作负担是十分庞大的。因此,能不能当管理对象的性能数据接近某个我们事先设定的临界值时,发出警报或者Email通知给管理员,希望他能来处理。这种情形就是WMI中的事件处理机制,这种机制使得开发人员能够发布、订阅、传递事件的消息。对于WMI事件处理机制来说,它必须解决 阅读全文
posted @ 2007-03-23 21:51 leonardleonard 阅读(378) 评论(0) 推荐(0)
摘要:C#没有提供播放MP3等音频文件的类,要编写播放MP3等音频文件程序,必须使用第三方控件或类。本文使用API函数mciSendString,编写一个播放MP3等音频文件的类。  具体源码如下:  一、使用API函数mciSendString构成的媒体播放类。程序代码usingSystem;usingSystem.Runtime.InteropServices;usingSystem.Text;usingSystem.IO;namespaceclsMCIPlay{ ///summary ///clsMci的摘要说明。 ////summary publicclassclsMCI {  pu 阅读全文
posted @ 2007-03-23 21:49 leonardleonard 阅读(505) 评论(0) 推荐(0)
摘要:电脑朗读”(英文)一个很好的触发点,通过它可以实现电子小说阅读、英文听力测试、英文单词学习...下面的Speech已对MSTTS作了简单封装。1.安装好MSTTS(如果你有装金山词霸,系统就已经安装了,在C:\windows\speech\下),可以在winntspeech中打到vtxtauto.tlb文件; 没有的话,就要装TTS和SAPI在金山的碟上有这两个文件! TTS:Microsoft Text-To-Speech Engine (全文朗读引擎) SAPI:Microsoft Speech API (语音API)2.用.NetSDK自带的tlbimp工具把vtxtauto.t 阅读全文
posted @ 2007-03-23 21:48 leonardleonard 阅读(246) 评论(0) 推荐(0)
摘要:以下方法实现判断一个IP是否被一个IP区间所包含有一些静态方法可能引用了同名空间的自定义的类,至于合并两个相临的IP段,可对其中的最大或最小IP+1using System;using System.Text.RegularExpressions;namespace HKH.Common{/// summary/// clsMacAndIP 的摘要说明。/// /summarypublic class clsIPAddress{private clsIPAddress(){}#region 判断是否合法 IP/// summary/// 判断是否合法 IP/// /summary 阅读全文
posted @ 2007-03-23 21:47 leonardleonard 阅读(515) 评论(0) 推荐(0)
摘要:如何创建强命名程序集(StrongNameAssembly)创建一个强命名程序集首先需要获得一个用强命名实用工具(StrongNameUtility,即SN.exe,.NETSDK自带)产生的密钥。下面简要介绍一下SN.exe的一些用法。要产生一个公钥/私钥对:a)SN–kMyCompany.Keys该命名告诉SN.exe创建一个名为MyCompany.keys的文件。MyCompany.keys文件将包含以对以二进制格式存储的公有密钥和私有密钥。b)查看公有密钥:首先生成一个只包含公有密钥的文件:SN–pMyCompany.keysMyCompany.PublicKey然后用-tp参数查看: 阅读全文
posted @ 2007-03-23 21:42 leonardleonard 阅读(151) 评论(0) 推荐(0)