摘要: C#本身自带的X进制之间的转换功能如下://十进制转二进制Console.WriteLine(Convert.ToString(69, 2));//十进制转八进制Console.WriteLine(Convert.ToString(69, 8));//十进制转十六进制Console.WriteLine(Convert.ToString(69, 16));//二进制转十进制Console.WriteLine(Convert.ToInt32(”100111101″, 2));//八进制转十进制Console.WriteLine(Convert.ToInt32(”76″, 8));//十六进制转十进 阅读全文
posted @ 2012-03-28 15:58 苗苗她爹 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 当两个或更多线程需要同时访问一个共享资源时,系统需要使用同步机制来确保一次只有一个线程使用该资源。Mutex 是同步基元,它只向一个线程授予对共享资源的独占访问权。如果一个线程获取了互斥体,则要获取该互斥体的第二个线程将被挂起,直到第一个线程释放该互斥体。可以使用 WaitHandle.WaitOne 方法请求互斥体的所属权。拥有互斥体的线程可以在对 WaitOne 的重复调用中请求相同的互斥体而不会阻止其执行。但线程必须调用 ReleaseMutex 方法同样多的次数以释放互斥体的所属权。Mutex 类强制线程标识,因此互斥体只能由获得它的线程释放。相反,Semaphore 类不强制线程标识 阅读全文
posted @ 2012-03-28 15:57 苗苗她爹 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 现在我们就自己动手来实现一个用户界面,该用户界面分为三个部分,由两个Splitter 控件来分隔和控制这三个的大小。1、先在窗体上放置部分一的控件,这里是TreeView控件,然后把它的 Dock 属性设置为 Left,使得控件停靠在窗体的左边。2、现在往窗体上拖放一个Splitter 控件,也就是界面中的Splitter1,把它的 Dock 属性也设置为 Left,这样它就停靠在TreeView控件的右边缘了。3、往窗体上拖放部分二的控件,这里是RichTextBox控件,然后把它的 Dock 属性设置为 Bottom,使得它停靠在窗体的下部。4、往窗体上拖放另外一个 Splitter 控件 阅读全文
posted @ 2012-03-28 15:57 苗苗她爹 阅读(609) 评论(1) 推荐(0) 编辑
摘要: 转载:http://www.cnblogs.com/jimmyzhang/archive/2007/09/23/903360.html引言委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就觉得心里别(biè)得慌,混身不自在。本文中,我将通过两个范例由浅入深地讲述什么是委托、为什么要使用委托、事件的由来、.Net Framework中的委托和事件、委托和事件对Observer设计模式的意义,对它们的中间代码也做了讨论。 阅读全文
posted @ 2012-03-28 15:56 苗苗她爹 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 引用自:http://hi.baidu.com/jiang_yy_jiang/blog/item/5ad3c3249e76f726d5074225.html在 2.0 之前的 C# 版本中,声明委托的唯一方法是使用命名方法。C# 2.0 引入了匿名方法,而在 C# 3.0 及更高版本中,Lambda 表达式取代了匿名方法,作为编写内联代码的首选方式。不过,本主题中有关匿名方法的信息同样也适用于 Lambda 表达式。有一种情况下,匿名方法提供了 Lambda 表达式中所没有的功能。匿名方法使您能够省略参数列表,这意味着可以将匿名方法转换为带有各种签名的委托。这对于 Lambda 表达式来说是不 阅读全文
posted @ 2012-03-28 15:56 苗苗她爹 阅读(440) 评论(0) 推荐(0) 编辑
摘要: 在Invoke或者BeginInvoke的使用中无一例外地使用了委托Delegate。 一、为什么Control类提供了Invoke和BeginInvoke机制?关于这个问题的最主要的原因已经是dotnet程序员众所周知的,我在此费点笔墨再次记录到自己的日志,以便日后提醒一下自己。1、windows程序消息机制Windows GUI程序是基于消息机制的,有个主线程维护着一个消息泵。这个消息泵让windows程序生生不息。Windows GUI程序的消息循环Windows程序有个消息队列,窗体上的所有消息是这个队列里面消息的最主要来源。这里的while循环使用了GetMessage()这个方法, 阅读全文
posted @ 2012-03-28 15:55 苗苗她爹 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 1-------------------------------------------------------用记事本打开sln文件,找到第一行,将microsoft visual studio solusion file,format version 10.0# visual studio 2008改为:microsoft visual studio solusion file,format version 9.0# visual studio 20052-------------------------------------------------------用记事本打开csproj文 阅读全文
posted @ 2012-03-28 15:55 苗苗她爹 阅读(134) 评论(0) 推荐(0) 编辑
摘要: C#回调函数应用示例,形象比喻方法助理解,整理了一个简单的例子来说明回调函数的用法: namespace CallBackFunction { class Program { static void Main(string[] args) { Program prog = new Program();//在静态函数Main中调用非静态方法时,必须先实例化该类对象,方可调用GetSum方法 SumClass sc = new SumClass();//实例化SumClass类 int result=sc.SumAll(prog.GetSum); Console.WriteLine(result. 阅读全文
posted @ 2012-03-28 15:54 苗苗她爹 阅读(1031) 评论(1) 推荐(1) 编辑
摘要: 最近在学设计模式,学到创建型模式的时候,碰到单例模式(或叫单件模式),现在整理一下笔记。 在《Design Patterns:Elements of Resuable Object-Oriented Software》中的定义是:Ensure a class only has one instance,and provide a global point of access to。它的主要特点不是根据客户程序调用生成一个新的实例,而是控制某个类型的实例数量-唯一一个。(《设计模式-基于C#的工程化实现及扩展》,王翔)。也就是说,单例模式就是保证在整个应用程序的生命周期中,在任何时刻,被指定的. 阅读全文
posted @ 2012-03-28 15:53 苗苗她爹 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 一、委托Delegate一般的方法(Method)中,我们的参数总是string,int,DateTime...这些基本的数据类型(或者没有参数),比如publicvoid HelloWorld() {Console.WriteLine("Hello World!");}publicvoid HelloWorld(string name) {Console.WriteLine("Hello ,{0}!", name);}但是有些时候,我们希望把一个方法本身当做参数传递给另一个方法,比如myObject.callMethod(HelloWorld);在没有 阅读全文
posted @ 2012-03-28 15:53 苗苗她爹 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 1、从“最简单”的单例模式说起:publicclass Singleton{privatestatic Singleton instance =null;privatestaticreadonlyobject syncRoot =newobject();private Singleton(){}publicstatic Singleton GetInstance(){if (instance ==null){lock (syncRoot){if (instance ==null){instance =new Singleton();}}}return instance;}} 稍微了解设计模式. 阅读全文
posted @ 2012-03-28 15:52 苗苗她爹 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 本文将介绍以下内容:• 面向对象思想:多态• 接口• 抽象类1. 引言在我之前的一篇post《抽象类和接口的谁是谁非》中,和同事管伟的讨论,得到很多朋友的关注,因为是不成体系的论道,所以给大家了解造成不便,同时关于这个主题的系统性理论,我认为也有必要做以总结,因此才有了本篇的新鲜出炉。同时,我将把上贴中的问题顺便也在此做以交代。2. 概念引入什么是接口?接口是包含一组虚方法的抽象类型,其中每一种方法都有其名称、参数和返回值。接口方法不能包含任何实现,CLR允许接口可以包含事件、属性、索引器、静态方法、静态字段、静态构造函数以及常数。但是注意:C#中不能包含任何静态成员。一个类可以实现多个接口, 阅读全文
posted @ 2012-03-28 15:51 苗苗她爹 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 转自 :http://www.cnblogs.com/anytao/archive/2007/12/03/must_net_18.html本文将介绍以下内容:对象的创建过程内存分配分析内存布局研究1. 引言了解.NET的内存管理机制,首先应该从内存分配开始,也就是对象的创建环节。对象的创建,是个复杂的过程,主要包括内存分配和初始化两个环节。例如,对象的创建过程可以表示为:FileStream fs = new FileStream(@"C:"temp.txt", FileMode.Create);通过new关键字操作,即完成了对FileStream类型对象的创建过 阅读全文
posted @ 2012-03-28 15:51 苗苗她爹 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 同事的webservice 是使用oracle客户端完成连接的,拷贝到我机器上后出现未能加载文件或程序集“Oracle.DataAccess, Version=1.102.4.0,的错误,发现web.config中的 <add assembly="Oracle.DataAccess, Version=10.1.0.200, Culture=neutral, PublicKeyToken=89B483F429C47342"/>这个有问题,查了查 ,说是在d:/oracle文件夹 右键 -安全-添加 authenticated users,并添加读取和运行权限,弄完 阅读全文
posted @ 2012-03-28 15:50 苗苗她爹 阅读(546) 评论(0) 推荐(0) 编辑
摘要: 做一个绑定数据到datagridview的例子,按钮里的代码如下:DataTable dt = new DataTable();for(int i=0;i<3;i++){DataColumn dc = new DataColumn();dc.ColumnName = "col"+i.ToString();dt.Columns.Add(dc);}for(int i=0;i<3;i++){DataRow dr = dt.NewRow();dr[0] = "aa";dr[1] = "bb";dr[2] = "cc&qu 阅读全文
posted @ 2012-03-28 15:47 苗苗她爹 阅读(1503) 评论(0) 推荐(0) 编辑