>> 不抱怨,不妒忌,潇洒做自己!

随笔分类 -  02 C#/.NET

摘要:今天在工作中遇到一个问题,如何将一个string类型转成byte[]? 这种问题就属于知道了就及其简单,不知道就够你忙活半天的那种。其实只要一个语句就OK了: byte[] byteArray = System.Text.Encoding.Default.GetBytes( str ); 怎么样,够简单吧? 反过来也是一样,把byte[]转成string: string str = System.Text.Encoding.Default.GetString( byteArray ); 其实,在System.Text.Encoding class中,还有很多其它有用的方法,像GetChars,从一个byte[]转成一个char[],等等,可以参考MSDN。 阅读全文
posted @ 2007-05-14 15:13 loose_went 阅读(89291) 评论(13) 推荐(13) 编辑
摘要:我们在做.Net Class Library项目时常常会遇到这样的问题,我想生成一个dll供其它程序使用,但在我的项目里,又需要引用一些其它的reference,像ActiveX控件或其它dll,而这些控件或dll又没有strong name,不能写入到GAC(Global Assembly Cache)中,因而,在注册使用你的dll时,就必须带上这些引用的控件或dll,才能完成注册。然而,这并不是我们需要的,我们只想提供一个dll给人家用就行了,为什么还要带上一堆的控件或dll呢?别人也不愿意这样。那么,有什么办法解决这个问题呢? 正好现在做的这个项目就是这种情况,看了一下网上的资料也不多,于是将自己的解决方法share一下,有什么不好的地方,恳请指正。 大家都知道,在.Net中,如果你试图将一个dll写入到GAC中,那么除了你的dll项目要使用strong name以外,你的项目中用到的其它的控件或dll都需要有strong name,否则,当你注册你的dll时,会提示缺少dependency。这一点让人很烦,但应该有它的好处,利于版 阅读全文
posted @ 2007-04-17 22:01 loose_went 阅读(3891) 评论(11) 推荐(1) 编辑
摘要:静态构造函数是C#的一个新特性,其实好像很少用到。不过当我们想初始化一些静态变量的时候就需要用到它了。这个构造函数是属于类的,而不是属于哪里实例的,就是说这个构造函数只会被执行一次。也就是在创建第一个实例或引用任何静态成员之前,由.NET自动调用。 class SimpleClass { // Static constructor static SimpleClass() { // } } 在使用静态构造函数的时候应该注意几点: 1、静态构造函数既没有访问修饰符,也没有参数。因为是.NET调用的,所以像public和private等修饰符就没有意义了。 2、是在创建第一个类实例或任何静态成员被引用时,.NET将自动调用静态构造函数来初始化类,也就是说我们无法直接调用静态构造函数,也就无法控制什么时候执行静态构造函数了。 阅读全文
posted @ 2007-03-29 22:50 loose_went 阅读(68246) 评论(21) 推荐(15) 编辑
摘要:什么是接口?其实,接口简单理解就是一种约定,使得实现接口的类或结构在形式上保持一致。个人觉得,使用接口可以使程序更加清晰和条理化,这就是接口的好处,但并不是所有的编程语言都支持接口,C#是支持接口的。注意,虽然在概念上,C#接口类似于COM接口,但他们的底层结构是不同的。那么,我们来看一下如何声明和使用接口。 声明接口 声明接口在语法上和声明抽象类完全相同,例如这里有一个银行账户的接口: public interface IBankAccount { void PayIn(decimal amount); bool Withdraw(decimal amount); decimal Balance { get; } } 注意:接口中只能包含方法、属性、索引器和事件的声明。不允许声明成员上的修饰符,即使是pubilc都不行,因为接口成员总是公有的,也不能声明为虚拟和静 阅读全文
posted @ 2007-03-29 00:13 loose_went 阅读(118491) 评论(33) 推荐(28) 编辑
摘要:在学习C++的继承时,我们经常会被访问属性搞混,也不容易记忆,对于初学者来说,就更加不易理解了。那么怎样才能把它记住并且不容易忘呢?那就是在理解的基础上去记忆,大多数书上对这一块的说明往往都是三大段文字,不晕也被绕晕了,那么只有你理解了,把它总结提炼成自己的语言,就一切都OK了。 阅读全文
posted @ 2007-03-18 17:40 loose_went 阅读(974) 评论(0) 推荐(1) 编辑
摘要:也许大家都曾遇到过这种情况,在Visual Studio 2003中,假如我们创建好了一个dll程序,想要使用另外一个程序来启动并进行调试,却无法启动。 阅读全文
posted @ 2007-02-27 23:15 loose_went 阅读(1135) 评论(1) 推荐(1) 编辑
摘要:今天,有个同事问我,怎样在C#中使用全局钩子?以前写的全局钩子都是用unmanaged C或C++写个DLL来实现,可大家都知道,C#是基于.Net Framework的,是managed,怎么实现全局钩子呢?于是开始到网上搜索,好不容易找到一篇,318804 - HOW TO: Set a Windows Hook in Visual C# .NET,里面详细的说明了如何使用鼠标钩子捕获鼠标的移动等,可是,它只能在Application里起作用,出了Application就没用了,就是说它还是没有实现全局钩子,而且文章结尾处说:“Global Hooks are not supported in the .NET Framework...”,这可怎么办呢? 阅读全文
posted @ 2006-09-22 10:39 loose_went 阅读(21936) 评论(84) 推荐(11) 编辑