2011年4月22日

C# .NET学习经验总结

摘要: 1. 装箱、拆箱还是别名 许多介绍C# .NET学习经验的书上都有介绍 int -> Int32 是一个装箱的过程,反之则是拆箱的过程。许多其它变量类型也是如此,如:short <-> Int16,long <-> Int64 等。对于一般的程序员来说,大可不必去了解这一过程,因为这些装箱和拆箱的动作都是可以自动完成的,不需要写代码进行干预。但是我们需要记住这些类型之间的关系,所以,我们使用“别名”来记忆它们之间的关系。 C# 是全面向对象的语言,比 Java 的面向对象都还彻底——它把简单数据类型通过默认的装箱动作封装成了类。Int32、Int16、Int64 阅读全文

posted @ 2011-04-22 09:14 seoxs 阅读(442) 评论(0) 推荐(0) 编辑

2011年4月21日

一个C#写的调用外部进程类

摘要: C# 调用外部进程的类,网上可以搜出很多来,为什么要再写一遍,实在是因为最近从网上拷贝了一个简单的例程用到项目中,运行有问题,后来研究了半天,才解决了这些问题。于是打算写这么一篇博文,一来说说调用一个外部进程这么简单的一件事究竟会有哪些问题,二来也希望我写的这个相对比较完整的类可以为软件开发的同道们节约一些脑细胞,以便集中优势兵力解决那些真正高深复杂的软件问题。在开始正题之前,我们先来看一看网上比较常见的执行外部进程的函数privatestringRunCmd(stringcommand){//例ProcessProcessp=newProcess();p.StartInfo.FileName 阅读全文

posted @ 2011-04-21 18:32 seoxs 阅读(534) 评论(0) 推荐(0) 编辑

用C#实现Web代理服务器

摘要: 相信大家都用过代理服务器上过网,哪大家是否知道如何实现呢?通过这篇文章相信有点基础的度可以写出自己的代理服务器 代理服务程序是一种广泛使用的网络应用程序。代理程序的种类非常多,根据协议不同可以分成HTTP代理服务程序、FTP代理服务程序等,而运行代理服务程序的服务器也就相应称为HTTP代理服务器和FTP代理服务器。本文将介绍的Web代理服务程序代理的是HTTP协议。 一、网络代理程序的优点 代理服务所起的是一个桥的作用,它是网络信息的中转站。在网络中应用代理服务一般是基于以下几个原因: (1)充分利用IP地址资源。在局域网中,一般对外的IP地址都是非常有限的,为了保证局域网内部的主机都能够访问 阅读全文

posted @ 2011-04-21 14:00 seoxs 阅读(501) 评论(0) 推荐(0) 编辑

IronPython和C#执行速度对比

摘要: 其实我自己对执行速度这个问题本来并没有什么兴趣,因为以前的经验告诉我:除非是运算密集型的程序,否则脚本语言和编译型语言使用起来速度没有多大差别。但是我们公司有个人知道我的想法以后,天天在我耳边嚷嚷脚本运行速度太慢,那好吧,让我用实验来说服你。不过这一试,还真的出现了吓人一跳的结果。我构思的实验覆盖到下面几个我认为是实际项目中比较有代表性的场景:1. 访问一个稍大的数据表,遍历所有记录; 2. 生成并操作一个列表;3. 生成并操作一个字典;4. 通过反射动态加载并调用一个方法。C#部分的代码,编译时使用了/debug-和/optimize+:CodeCode highlighting produ 阅读全文

posted @ 2011-04-21 13:58 seoxs 阅读(806) 评论(2) 推荐(0) 编辑

C#实现Eval函数功能

摘要: 众所周知javascript有一个eval函数,可以动态执行代码。但在C#中却没有!以下代码是在我项目中提取出的核心代码,其实很简单就是 编译-->生成程序集-->反射调用。高手指点,新手学习!//如果执行成功返回NULL,否则返回错误文本stringstrErr;//代码执行结果是以字符串形式返回的,因为我的项目中只须要字符串结果,大家可跟据须要自己修改。www.elivn.comstringstrResult=CommandDebugger.Evaluator.Eval(“YourCodes”,outstrErr);代码下载:下载地址 --------------------- 阅读全文

posted @ 2011-04-21 13:55 seoxs 阅读(596) 评论(0) 推荐(0) 编辑

三种模拟自动登录和提交POST信息的实现方法

摘要: 网页自动登录(提交Post内容)的用途很多,如验证身份、程序升级、网络投票等,以下是用C#实现的方法。 网页自动登录和提交POST信息的核心就是分析网页的源代码(HTML),在C#中,可以用来提取网页HTML的组件比较多,常用的用WebBrowser、WebClient、HttpWebRequest这三个。以下就分别用这三种方法来实现: 1、WebBrowser是个"迷你"浏览器,其特点是Post时不用关心Cookie、内置JS等问题 WebBrowser是VS2005新提供的组件(其实就是封装了IE接口),实现POST功能一般在webBrowser的DocumentCom 阅读全文

posted @ 2011-04-21 09:13 seoxs 阅读(464) 评论(1) 推荐(0) 编辑

在c#使用IOCP(完成端口)的简单示例

摘要: 上次给大家发了利用winsock原生的api来做一个同步的socket服务器的例子,大致上只是贴了一些代码,相信大家这么冰雪聪明,已经研究的差不多了。因为winsock的api使用在msdn或者google上都能很方便的查到,所以我没太多罗嗦代码的原理。但是c#进行平台调用方面是有一些经验的,单靠google和msdn及社区的力量有时候不容易得到答案。这次给大家演示一下利用IOCP的在线程间传递数据的例子,顺便打算讲一些细节和注意的地方。概述:这里主要使用IOCP的三个API,CreateIoCompletionPort,PostQueuedCompletionStatus,GetQueued 阅读全文

posted @ 2011-04-21 09:11 seoxs 阅读(1404) 评论(0) 推荐(0) 编辑

C#里的一些加密解密标准函数示例——DES,SHA1,RSA

摘要: 最近收到了很多朋友的来信说希望提供DES的C#代码,但是我个人认为,.NET 提供了很多标准函数,没有必要自己写,所以我也只发布了C++的代码,如果大家一定要熟悉加密过程的话,也可以自己动手实现整个过程,这个可以参考我博客里的DES 算法介绍,和yxyDES2 Class的代码,代码注释相当的清楚。 .NET 提供了很多标准加密、解密函数,我简要介绍一下DES,SHA1,RSA的标准函数的使用。如果你想做一个网络安全模块,只需将三种算法结合起来设计一个模型,我相信可以实现很多复杂的功能。 示例本身并不复杂,我也不做过多解释,我也学Linus Torvalds一样吼一句:"Read t 阅读全文

posted @ 2011-04-21 09:08 seoxs 阅读(430) 评论(0) 推荐(1) 编辑

2011年4月20日

C#中"is" vs "as"

摘要: 在数据类型转换中,C#相对其它语言来说是比较严格的,要求显式进行数据转化。 为了操作方便,C#也提供了一种is操作符进行转换,十分方便,它自动检查时局是否和类型兼容,并返回结果。而且它不会抛出异常。如果对象引用为null,则is总返回false。if(cls1isClass2){Class2cls2=(Class2)cls1;}elseSystem.Console.WriteLine("Error2!"); 平时自己也多用这种方式来做类型转化的,但今天看了个文章,对比了另外一种方式,as操作符进行转换,才知道as比is可以稍微地提高性能的。Class2cls2=cls1as 阅读全文

posted @ 2011-04-20 17:29 seoxs 阅读(248) 评论(0) 推荐(0) 编辑

C#中实现VB中的CreateObject方法.

摘要: 经常看到有些VB的例子中直接用个CreateObject就可调用系统功能(大多是COM对象),像用户设定,网络设定等等。虽然C#中可以通过使用VB的命名空间的方法来调用CreateObject函数,但是这样比较没什么用,因为生成的对象的所带有的方法都不能使用。C#中还可以直接用添加引用的方式来调用一些对象,前提是你知道该添加哪个引用。 当我上网搜索,已经搜索到很多VB的成功用CreateObject调用的例子,C#的例子却很难找到的时候,就干脆用类似VB的方法算了,很简单。免得继续在网络中大海捞针了。C#中类似 CreateObject的方法就是 System.Activator.Create 阅读全文

posted @ 2011-04-20 17:27 seoxs 阅读(526) 评论(0) 推荐(0) 编辑

导航