随笔分类 -  C#

C#操作Win7/Win8的库、收藏夹
摘要:这里说的库、收藏夹指的就是下图中左侧的部分:这里的“收藏夹”比较有迷惑性,它其实不是用户浏览器的Favorite,而是Links,可以简单理解成快捷方式。在使用方面,它有比快捷方式更强大的地方,这超出了本文所讨论的范围。库(Library)则是个让新用户比较迷惑的东西。可以理解为它是一个逻辑文件夹,里面包含一个或多个文件夹的快捷方式。Step by Step操纵收藏夹,需要用到快捷方式,因此需要添加COM引用,如下图:之后部署的时候也要带上这个dll一起,否则运行时会报错。操纵库,需要到微软网站上下载一个SDK http://archive.msdn.microsoft.com/Windows 阅读全文
posted @ 2012-07-07 09:46 MainTao 阅读(3354) 评论(0) 推荐(0) 编辑
P/Invoke Interop 实例
摘要:新建一个项目,名为PInvoke: 建好项目后,添加一个cpp源文件,由于只是一个Demo,我们使用默认的名称Source.cpp: Source.cpp代码如下:#include <stdio.h>#include <stdlib.h>#include <string.h>#include <Windows.h>typedef struct MyType{ int i; ... 阅读全文
posted @ 2012-07-02 15:16 MainTao 阅读(4878) 评论(3) 推荐(2) 编辑
Threading Best Practices (转)
摘要:Rule Description Automatic Correction Reference to a static variable should be synchronized using a thread lock. Static members are shared across object instances and threads and should be protected u... 阅读全文
posted @ 2009-03-30 23:51 MainTao 阅读(292) 评论(0) 推荐(0) 编辑
C# Attribute
摘要:特性,就是为目标元素,可以是数据集、模块、类、属性、方法、甚至函数参数等加入附加信息,类似于注释,但是可以在运行期以反射的方式获得。定制特性主要应用在序列化、编译器指令、设计模式等方面。多个特性可以应用于同一元素,特性间以逗号隔开,以下表达规则有效:[AttributeUsage][ Flags]、[AttributeUsage, Flags]、[Flags, AttibuteUsageAttri... 阅读全文
posted @ 2009-03-24 08:57 MainTao 阅读(9380) 评论(0) 推荐(4) 编辑
接口和抽象类(杂凑)
摘要:“接口不变”,是应该考虑的重要因素。所以,在由接口增加扩展时,应该增加新的接口,而不能更改现有接口。尽量将接口设计成功能单一的功能块,以.NET Framework为例,IDisposable、IDisposable、IComparable、IEquatable、IEnumerable等都只包含一个公共方法。抽象类是提取具体类的公因式,而接口是为了将一些不相关的类̶... 阅读全文
posted @ 2009-03-23 22:42 MainTao 阅读(312) 评论(0) 推荐(0) 编辑
C# 泛型
摘要:(*) where用来限制泛型的类型。where T : struct 可简单理解为只允许值类型(其实是其继承链中必须有值类型)where T : class 可简单理解为只允许引用类型(其实是其继承链中必须有引用类型)where T : new() 所有值类型OK,如果是引用类型则必须支持用无参构造函数实例化。(有多个where约束时,new()必须在末尾)where T : 类名 必须是某个类... 阅读全文
posted @ 2009-03-23 11:45 MainTao 阅读(387) 评论(0) 推荐(0) 编辑
C# 委托 事件 匿名方法
摘要:(*) 委托从最简单的例子开始:[代码]上面是静态方法的委托,下面再来看一个实例方法的委托。[代码](*) 事件委托是个类型,而事件是个成员。看下面的代码:[代码](*) 匿名方法匿名方法的作用是使代码更简化,方便了程序员。如果没有匿名方法,则定义一套事件监听需要这样:[代码]上面的代码比较啰嗦,尤其是为委托和它所调用的方法起名字比较费劲我觉得。有了匿名方法以后,仅需要这样:[代码]与上一段代码相... 阅读全文
posted @ 2009-03-19 22:54 MainTao 阅读(5312) 评论(0) 推荐(1) 编辑
关于C#接口的种种
摘要:(*) 接口也可以继承接口,但子接口不提供父接口方法的实现(*) 当一个类同时继承父类又实现接口,要把接口放在最后面,如class xxx: ParentClass, ISomeInterface(*) 当同时实现的多个接口中出现同名方法除了解决同名方法冲突,此段代码同时展示了3种使用接口的方式:[代码](*) 自动生成代码实现接口的类要写不少代码,而且还经常会碰到上面说的语法问题,所以VS提供了... 阅读全文
posted @ 2009-03-17 21:53 MainTao 阅读(2420) 评论(2) 推荐(1) 编辑
Console in C#
摘要:The Console class also recalls some of my Unix programming memories. When I was a Unix programmer, I used a terminal called SecureCRT, whose window width can be wider than 80 characters. Is 80 enough... 阅读全文
posted @ 2009-03-09 23:08 MainTao 阅读(1910) 评论(0) 推荐(0) 编辑
C#与C++在语言层面的区别(不断补充)
摘要:注:C#语言发展十分迅速,而且仍然有很大的提升空间,所以现在写下的有关C#语言上的一些限制,可能过一两年就不同了,所以需要不断更新。至于C++,因为已经很久没怎么变动,所以就容易得多。 (*) 允许初始化成员变量 C#允许 C++不允许 (*) 编译器自动添加默认无参构造函数 c++:当用户实现了有参构造函数,编译器就不添加了。 c#:对于class与C++一样。但对于struct,无论用户实... 阅读全文
posted @ 2009-03-09 20:08 MainTao 阅读(3836) 评论(2) 推荐(0) 编辑
The Environment class in C#
摘要:The class recalls my Unix programming memory :) 阅读全文
posted @ 2009-03-09 14:52 MainTao 阅读(258) 评论(0) 推荐(0) 编辑
Union in C# & struct memory layout
摘要:When we want to control the memory layout, we must use System.Runtime.InteropServices namespace, it contains some useful attributes such as StructLayoutAttribute, FieldOffsetAttribute and also some us... 阅读全文
posted @ 2009-03-09 11:09 MainTao 阅读(2184) 评论(0) 推荐(1) 编辑
C# unsafe code
摘要:(*) unsafe 和 fixed Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->unsafe { int[] array = new int[10]; for (int i = 0; i cl... 阅读全文
posted @ 2009-03-06 13:28 MainTao 阅读(16444) 评论(2) 推荐(3) 编辑
Unix时间戳
摘要:写出下面这段晦涩难懂但却极为高效的代码的人,真是个败类。 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->// For more information about Year 2038 problem please refer to // http:... 阅读全文
posted @ 2009-02-26 10:28 MainTao 阅读(551) 评论(0) 推荐(0) 编辑
BinaryTree with C#
摘要:上了三年半的大学,学的计算机,我却一直不知道二叉树是干什么使的。最近在看《Visual C# 2005 从入门到精通》,书中说.NET类库里缺少二叉树这个类,于是就想自己写一个,没想到一边写着一边思考,竟也把二叉树的用处以及其优势劣势搞明白了。 二叉树有什么用?二叉树本身没有什么用,其主要作用在于有序二叉树(下文简称“有序二叉树”为“二叉树”)。二叉树在插入和查找的时候具有高效率。为什么会具有高效... 阅读全文
posted @ 2007-01-01 18:29 MainTao 阅读(2749) 评论(1) 推荐(0) 编辑