代码改变世界

随笔分类 -  C#.NET

从IL代码来探讨C#中的接口方法、虚方法与抽象方法

2012-08-03 17:18 by Johnny Qian, 2207 阅读, 收藏, 编辑
摘要: 虚方法与抽象方法的比较是老生常谈的话题了。这次连带上接口方法来次深入探讨,从IL代码的层面来找出这些概念的不同之处。 阅读全文

使用XSD文件验证XML文件

2011-07-22 16:18 by Johnny Qian, 6452 阅读, 收藏, 编辑
摘要: 相信大家对XML文件不会陌生。与XML文件在一起的通常还会有XSD文件。在我初步了解XML的时候就知道这个文件可以用来验证XML文件的schema,但是具体怎么个验证法,怎么用代码来对XML文件做校验,一直是模棱两可。刚好项目中用到了,于是就想写下来。 阅读全文

用C#和本地Windows API操纵系统菜单(转)

2010-08-03 22:20 by Johnny Qian, 1787 阅读, 收藏, 编辑
摘要: .NET框架是Windows应用领域中一个非常新的技术,可以肯定在未来的一段时间内,.NET应用必须与现存的Windows技术交互作用。这种交互作用主要体现在两个领域:COM和应用编程接口(API)。为此,.NET框架在Windows API之上提供了一个OO层,但是有时候可能需要使用一个.NET不可到达的API调用。在这种情况下,可以使用.NET平台调用(P/Invoke)机制从.NET中调用C或C++函数。因为Windows API函数在DLL中,所以,P/Invoke为从.NET代码调用DLL中的C或C++函数提供了一种通用机制。 本文针对C#.NET中没有提供直接的类似SystemMenu的属性或类似GetSystemMenu的成员函数的实际,编写了一个C#类SystemMenu,从而实现了传统的对于系统菜单的操作,这是通过调用本地Windows API来完成的。 阅读全文

(转)C# 委托的同步调用和异步调用

2010-04-14 15:29 by Johnny Qian, 308 阅读, 收藏, 编辑
摘要: 委托的Invoke方法用来进行同步调用。同步调用也可以叫阻塞调用,它将阻塞当前线程,然后执行调用,调用完毕后再继续向下进行。 阅读全文

反编译 .NETZ 压缩过的exe程序

2010-02-22 11:00 by Johnny Qian, 4531 阅读, 收藏, 编辑
摘要: 在网上下载了一个程序,觉得程序功能不错,看程序界面像是用.NET写的(用PEiD查看了,检测结果是Microsoft Visual C# / Basic .NET),于是想用 .NET Reflector反编译看一下代码,结果发现这个程序使用.NETZ 压缩过了,整个程序用 .NET Reflector反编译后就只得到了NetzStarter.cs文件和一个资源文件app.resx。 阅读全文

C#开方运算比加法运算快?

2009-01-14 10:10 by Johnny Qian, 1565 阅读, 收藏, 编辑
摘要: 近日,在写C#程序的时候遇到了个很奇怪的问题:开方运算竟然比加法运算快!? 阅读全文