
C#点点滴滴
bindsang
工作五年,长期从事于asp.net方面的编程,业余爱好VC编程,温和、谦虚、自律、自信、善于与人交往沟通
展开
-
谈谈C#中的Delegate
本人现在长期从事于.NET下的开发,因为工作的关系,间断的做过一些C++,DELPHI的程序,对后两者的程序语言有一定的了解,因此在平时也经常遇 到有人问我关于C#和另外两种语言相比有哪些特点。我所了解的其中很大一个特点就是C#里没有指针,所有的对象全部通过引用来该问。引用的类型之间不能随 便进行转换,避免了程序运行过程中出现的转换可能发生的问题(例如把一个整型转成一个指针进行访问原创 2008-01-24 17:58:00 · 2513 阅读 · 0 评论 -
C#与Native C++互相访问
用C#做开发已经好几年了,一直用得挺顺手的,最近有一个项目需要用到DirectShow的相关COM组件,也就是想在C#的项目里面实现一个基于内存流的Filter,这个却让我着实头痛了好久。 原因就是在C#里面没有现成的DirectShow的COM组件的定义,虽说在C#中可以使用一些特定的方式来操作COM组件(C#中COM操作(一)---实例化),可是对于DirectSho原创 2008-12-24 21:57:00 · 3889 阅读 · 1 评论 -
C#中COM操作(二)---接口查询
上一篇末留下的一个疑问这一回来作个解答吧。大家看了下面的图就清楚了: 结论就是t1,t2,t3是三个不同的引用,也就是说在.NET里面代表了三种不同的类型,但是三种类型的GUID却是一样的,因为在COM里GUID代表了一个COM类,只要GUID是一样的那么就表示是一个COM类,因此仅从COM类这一角度出发的话,这三种类型就是同一个COM类型。 第1种方式创建的COM对原创 2008-08-18 23:30:00 · 5676 阅读 · 3 评论 -
C#中COM操作(一)---实例化
用C#做WinForm程序,时间长了难免会遇到和COM组件打交道的地方,用什么方式创建COM对象也成了我们必须面对的一个问题.据我所知道的创建COM对象的方法一共有以下几种:1 使用.NET包装COM组件 这是最简单的就是导入COM组件所在的DLL,让IDE生成.NET一个IL包装加到项目中,这样原来COM里面所有实现了IDispatch,Dual的COM类型及其相关类原创 2008-08-08 18:08:00 · 19086 阅读 · 15 评论 -
如何高效地判断奇数和偶数
在我们日常的编程当中,常常会遇到判断某个整数属于奇数还是偶数的情况。 一般我们都是用的取模的操作,前几天在网上看到了一种称作快速有效的判断做法,利用2进制进行判断。 大家都知道,奇数的最低位一定是1,而偶数的最低位一定是0.所以我们可以根据这个特性,让需要判定的整数和1进行“与”运算,这样就只留下了原数的最低位,然后直接判断这个数等于1还是等于0即可。 实现代码如下:class P原创 2008-07-25 13:24:00 · 3847 阅读 · 0 评论 -
类的成员初始化顺序
C#作为一种纯面向对象的话言,为它编写的整个代码里面到处都离不开对象。一个对象的完整的生命周期是从开始分配空间到初始化,到使用,最后是销毁,使用的资源被回收。要想真正写出面高质量的代码,我们就得对这期间每一个阶段是怎么样一个状态,framework都做了些什么,我们又能够做些什么都要有些了解才行。 一般来说大部分程序员对于一个创建好了的对象怎么使用都是比较清楚的,所以本文也就不想就这原创 2008-07-24 16:24:00 · 1224 阅读 · 0 评论 -
正则表达式中的单行和多行
众所周知,在.NET下面专门有个Regex类是处理正则表达式的。本人几年的编程经历,多多少少也接触了一些正则表式处理字符串的问题,可以说对于写正则表达式还算是小有心得。 这几年一直在.NET下面编程,与Regex类接触的也挺多的,老早就发现RegexOptions选项中有很多是其它语言(如C/C++,JS)的正则表达式中没有的,像是Compiled,Explici原创 2008-07-09 18:00:00 · 2697 阅读 · 1 评论 -
面向对象程序设计的基本原则
很久以前就知道面向对象设计有一些公认的基本原则,可都是零零碎碎的了解一部分,虽然在实践的过程中也有意识的用到了一些,可是从来没有系统的总结过,这是我从网上找到的比较详细的介绍,就当是读书笔记吧 所有的设计模式都是对不同的可变性的封装,从而使系统在不同角度达到“开闭原则”的要求。 在软件软件系统中,一个模块设计得好不 好的最主要、最重要的标志,就是该模块在多大程度上将自己的内部数据和其他转载 2008-01-19 11:34:00 · 1034 阅读 · 0 评论 -
关于抽象类和接口
长时间以来一直看到网上有断有人在讨论在面向对象设计中,抽象类和接口都可以作为“契约”的声明方式,可以被派生类 重写/实现,那么为什么在大多数的面向对象的语言中都同时保留了这两种类型呢,另外在什么样的情况下该使用哪种类型更好,更能体现设计人的真正思想呢? 在学C#的过程中,逐渐接触到了面向对象设计,我曾经对这个问题感到很迷惑,如果除了语言上限制的类的单继承和抽象类可以有部分原创 2008-01-19 19:46:00 · 774 阅读 · 0 评论 -
为什么说WinForm的控件只能在主线程中创建和调用
通常我们在做多线程编写WinForm程序的时候经常听到的一句话就是“窗体控件只能在主线程中创建”,刚开始的时候我也接受的是这样的教育,因此一直以来一直在编程中有意识的这样做了。平时也没有过多的去想为什么要这样做,就把这个当做是一条公理了,就像是数学中“两个不同的点确定一条直线,三个不在同一直线上的点确定一个平面”一样那么简单。 最近又一次在做一个WinForm程序,原创 2008-12-24 22:00:00 · 3397 阅读 · 1 评论