C#中使用指针(转)
我想许多C程序员不愿意学习Java的原因就是Java不支持指针,但是现在类似于Java的C#却已经支持了指针,你可以使用unsafe关键字来告诉编译器下面的函数或者代码是不安全的。一旦你使用了unsafe,那么你就可以在unsafe区域中使用指针。 程序1 using System; class nish { unsafe static void Increment(int* p) { //increment the int pointed to by p *p=*p+1; } public static void Main() { int i = 1; //we pass the address of the int to the function as it expects a pointer unsafe Increment(&i); //now w
c#中对文件的操作小结(转)
1、建立一个文本文件 public class FileClass { public static void Main() { WriteToFile(); } static void WriteToFile() { StreamWriter SW; SW=File.CreateText("c:MyTextFile.txt"); SW.WriteLine("God is greatest of them all"); SW.WriteLine("This is second line"); SW.Close(); Console.WriteLine("File Created SucacessFully"); } } 2、读文件 public class FileClass { public static void Main() { ReadFromFile("c:MyTextFile.txt
关于c#中的事件处理机制(转)
今天一朋友问我在程序中怎么实现事件。于是我总结了哈发出来。要明白事件,首先要知道什么是委托。在C#中委托允许开发人员将一个对象中的方法传递给另一个能调用该方法的类的某个对象。比如:可以将类AC中的一个方法ADD[前提是这个方法以被包含在某个委托中了]传递给另一个类WMS。此时类WMS就能调用类AC中的ADD了。当然不管你是以什么方式实现方法的传递了,可以是静态的,也可以是实例化的。。要实现一个委托,需要按照这样的不揍:A:申明委托对象。注意:参数一定要和你想要包含的方法的参数形式一致。public delegate void NeweggDele
关于C#静态构造函数的几点说明
静态构造函数是C#的一个新特性,其实好像很少用到。不过当我们想初始化一些静态变量的时候就需要用到它了。这个构造函数是属于类的,而不是属于哪里实例的,就是说这个构造函数只会被执行一次。也就是在创建第一个实例或引用任何静态成员之前,由.NET自动调用。 以下是引用片段: class SimpleClass { // Static constructor static SimpleClass() { // } } 在使用静态构造函数的时候应该注意几点: 1、静态构造函数既没有访问修饰符,也没有参数。因为是.NET调用的,所以像public和private等修饰符
在Visual C#中使用XML指南之读取XML
对于XML,想必各位都比较了解,我也就不用费笔墨来描述它是什么了,我想在未来的Web开发中XML一定会大放异彩,XML是可扩展标记语言,使用它企业可以制定一套自己的数据格式,数据按照这种格式在网络中传输然后再通过XSLT将数据转换成用户期望的样子表示出来,这样便轻易的解决了数据格式不兼容的问题。用于Internet的数据传输,我想,这是XML对于我们这些程序员最诱人的地方! 我们今天的主题不是论述XML的好处,而是讨论在C#中如何使用XML。下面我们来了解一下使用程序访问XML的一些基础理论知识。 访问的两种模型: 在程
使用C#轻松编写.Net组件
在.net框架提出之前,编写组件被视为是一种需要高深技巧的工作,令很多人望而生畏。而.net的出现,使得组件的编写变得如此平易近人,而.net framework的核心语言C#,更是被称为面向组件的语言。在这里,我将向大家介绍如何使用C#编写在.net framework环境下运行的组件,包括如何编写组件类,如何添加域、属性以及事件,如何编译和分发组件。 ??首先看下面这段足够简单的代码实例(在后面我们将慢慢将它变成一个五脏俱全的组件): using System; namespace ComponentCS { public class StringComponent { private string[] StringsSet; publ
用C#把文件转换为XML
using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.IO; using System.Xml; namespace MyWindows { /// <summary> /// 这个示例演示如何把Office文件编码为xml文件以及如何把生成的xml文件转换成Office文件 /// 把文件转换成xml格式,然后就可以用web服务,.NET Remoting,WinSock等传送了(其中后两者可以不转换也可以传送) /// xml解决了在多层架构中数据传输的问题,比如说在客户端可以用Web服务获取服务器端的office文件,修改后再回
用Visual C#向Excel2002传输XML数据
本文说明如何创建DataSet 对象,以及如何使用WriteXML方法将该对象包含的数据导出到 XML 文件中。生成的 XML 文件可以直接在 Excel 中打开。为便于说明,使用 Jet OLEDB 提供程序从 Microsoft Access Northwind 示例数据库创建了DataSet 对象。但是,类似的代码可与您使用 Visual C# .NET 创建的任何DataSet 对象一起使用。 1. 启动 Microsoft Visual Studio .NET。在文件菜单上,单击新建,然后单击项目。从 Visual C# 项目类型中选择Windows 应用程序。默认情况下创建 Form1。 2. 在视图菜单上,选择工具箱以显示“工具箱”,
利用C#编写一个简单的抓网页应用程序
本文利用C#和.NET提供的类来轻松创建一个抓取网页内容源代码的程序 。HTTP是WWW进行数据访问最基本的协议之一,在.NET的基本类型库类中提供了两个对象类:HTTPWebRequest和HTTPWebResponse,分别用来向某资源发送请求和获得响应。为了得到一个资源的内容,我们先指定一个想要抓取的URL地址,用HTTPWebRequest对象进行请求,用HTTPWebResponse对象接收响应的结果,最后用TextStream对象来提取我们想要的信息,并在控制台打印出来。 下面就是看看如何实现这样的功能: 第一步:打开VS.NET,点“文件”-“新建”-“项目”,项目类型
在IE中托管Windows Form
如果曾经使用Java开发过Web应用程序,你一定会对Java applets比较熟悉,这是一种基本上在浏览器中运行的小型程序。当浏览器加载包含有Java applets标志的HTML代码时,Java applets就会执行,网页中的Windows Forms控件的运行方式与Java applets相似。我们可以使用由Windows Forms技术提供的丰富的类开发Windows Forms控件,然后在网页中部署这些控件,当浏览器加载这些网页时,就会执行包含在Windows Forms控件中的代码。 .NET的伟大之处之一是它提供的与IE的无缝集成能力。例如,我们甚至能够在用户不知道的情况下从IE中激活一个
Visual C#编写实现POP3的程序
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 System.Text; using System.IO; 4.主要代码 为了防止界面在连接服务器时死锁,我另开了一个线程 private void button1_Click(object sender, System.EventArgs e) { Thread myThread=new Thread(new ThreadStart(TreadGet)); myThread.Star
用C#开发网络防火墙技术分析
N-Byte网络守望者是一款单机版网络安全工具,简言之,就是一个用.NET开发的个人版防火墙。在N-Byte网络守望者1.0版的开发中,使用了NDIS Hook Driver技术来实现网络封包过滤功能,这使N-Byte网络守望者能够在网络层过滤网络封包,从而实现强大的功能。 由于软件的主程序是用C#写的,C#中没有提供具有类似DeviceIoControl函数功能的驱动设备控制函数,而NDIS Hook Driver技术下的驱动程序是用DDK下的C语言写的,为了能够实现主程序对驱动程序的控制和相互通信,采用了以下设计方案: 在以上方案中,需要一个负责主程序与NDIS Hook D
C#的Raw Socket实现网络封包监视
本文向大家介绍Windows Sockets的一些关于用C#实现的原始套接字(Raw Socket)的编程,以及在此基础上实现的网络封包监视技术。同Winsock1相比,Winsock2最明显的就是支持了Raw Socket套接字类型,使用Raw Socket,可把网卡设置成混杂模式,在这种模式下,我们可以收到网络上的IP包,当然包括目的不是本机的IP包,通过原始套接字,我们也可以更加自如地控制Windows下的多种协议,而且能够对网络底层的传输机制进行控制。 在本文例子中,我在nbyte.BasicClass命名空间实现了RawSocket类,它包含了我们实现数据包监视的核心技术。在实现这
Visual C#建立简单消息传递系统
摘要: 本文讨论基于套接字(socket)的体系结构以及怎样建立一个高效的、易于使用的、可以同时在PC和Pocket PC上运行的消息传递(message-passing)系统。 套接字和消息 目前,大多数Web服务和所有的远程应用程序都使用了远程过程调用(remote-procedure-call,RPC)方法。你所做工作好像是在调用一个函数,但是在其后台执行了大量的操作以确保它在服务器上发生。在较低的层次,系统是在两台计算机之间传递消息,但这是不可视的。 然而,当你转换到套接字操作的时候,你就在纯粹的基于消息的系统中编程了。这会改变你编写的代码
C#中的cookie编程
Cookie就是所谓的" 小甜饼" ,他最早出现是在Netscape Navigator 2.0中。Cookie其实就是由Web服务器创建的、将信息存储在计算机上的文件。那么为什么Web服务器要在客户机上面创建如此文件?这是因为当客户机发送一个请求到WEB服务器时(譬如准备浏览页面时),无论此客户机是否是第一次来访,服务器都会把它当作第一次来对待,WEB服务器所做的工作只是简单的进行响应,然后就关闭与该用户的连接。这样处理过程所带来的缺点时显而易见的。自从网景公司开发出Cookie以后,就可以利用Cookie来保存用户的识别信息。Cookie的作用可以记
一个Web文件上传的C#源代码
//保存文件的路径,包括文件名 private string GetSavePath(string FileName) { string path=Request.PhysicalApplicationPath +"Link_Icon"; return path+"
用C#电子邮件验证的类
/* 电子邮件验证 Windows2000 、Microsoft.NET Beta2、C# Made By Qingming Zhao Email: zqm2000@126.com 2002,2,17 csc /target:library ValideEmail.cs */ using System; using System.Net.Sockets; using System.IO; using System.Text; namespace BysWangZhan { class ValidateEmail //电子邮件验证 { public string strEmail; public string strServer; public int intPort; string Email { set { strEmail=value; } get { return strEmail; } } string Server { set {
创建不规则窗体和控件之三
一个更好的例子>下面我给大家介绍一个更好的例子,该实例的界面就和微软的Windows Media Player 7的界面差不多。不过在这个例子中,我只是介绍了如何制作出界面,并没有实现媒体播放的功能,要实现那些功能,还需要您自行完善。该实例运行的界面如下: 1.将某种颜色设置为窗体的背景颜色,然后将窗体的TransparenceKey属性设置为那种颜色,同时将窗体的FormBorderStyle属性设置为None。 2.重载Form_Paint()函数: protected override void OnPaint(PaintEventArgs e)或是this.Paint += new System.Windows.Form.PaintEventHandle
创建不规则窗体和控件之二
现在,我们已经创建了一个不规则的窗体,并实现了一些基本的移动窗体、关闭窗体的功能。然而,窗体上的按钮控件还是老一套,那么方方正正,使得整个界面不美观。接下来我就向大家介绍如何创建自定义形状的控件。 前面我们创建不规则窗体的时候用到了TransparencyKey属性,但是控件是没有该属性的,所以我们得找其他的方法来实现控件的不规则形状了。在窗体上画一个自定义形状的控件时,你需要精确的告知窗体在什么位置以及如何画该控件。在.Net Framework中有相应的类和方法来帮你实现这些,所以你不必担心具体实现。 .Net Framework中的
利用Visual C#打造一个平滑的进度条
本文描述了如何建立一个简单的、自定义的用户控件——一个平滑的进度条。 在早先的进度条控件版本中,例如在 Microsoft Windows Common Controls ActiveX 控件中提供的版本,您可以看到进度条有两种不同的视图。您可以通过设定 Scrolling 属性来设定 Standard 视图或是 Smooth 视图。 Smooth 视图提供了一个区域来平滑的显示进度, Standard 试图则看上去是由一个一个方块来表示进度的。 在 Visual C# .NET 中提供的进度条控件只支持 Standard 视图。 本文的代码样例揭示了如何建立一个有如下属性的控件: Min