随笔 - 1330
文章 - 1
评论 - 378
阅读 -
482万
随笔分类 - 03~c#
System.EventArgs和System.EventHandler的作用
摘要:System.EventHandler是在事件处理过程中用于Windows Forms(和APS.NET)API的一种委托类型。如你所见,此委托只能指向第一个参数是System.Object类型的方法,此参数代表触发事件的类型。例如,我们打算改写mnuFileExit_Click()方法的实现,代码如下:[代码]我们可以确定是mnuFileExit触发了事件,因为在消息框中显示了字符串。[代码]你...
阅读全文
利用System.EventHandler来实现两个窗体间的事件调用
摘要:在.NET中,窗体也被定义为一个类,所以要想调用窗体中的某个方法,除了要将要调用的方法设为public外,还得创建一个窗体类的实例。然而,在下面这种情况下,就是当我们打开了窗体1(有了此窗体的一个实例),接着打开了窗体2,接下来我们想通过触发窗体2中的某个事件来调用窗体1中的某个方法,而这时我们又不能再创建窗体的新的实例了,怎么办? 解决的办法之一就是利用.NET中提供的System.EventH...
阅读全文
[推荐]C#委托之个人理解
摘要:转自:http://www.cnblogs.com/michaelxu/archive/2008/03/31/1131500.html什么是委托 首先要知道什么是委托,用最通俗易懂的话来讲,你就可以把委托看成是用来执行方法(函数)的一个东西。如何使用委托 在使用委托的时候,你可以像对待一个类一样对待它。即先声明,再实例化。只是有点不同,类在实例化之后叫对象或实例,但委托在实例化后仍叫委托。声明...
阅读全文
[推荐]c#多态性03
摘要:一、什么是多态 面向对象程序设计中的另外一个重要概念是多态性。在运行时,可以通过指向基类的指针,来调用实现派生类中的方法。可以把一组对象放到一个数组中,然后调用它们的方法,在这种场合下,多态性作用就体现出来了,这些对象不必是相同类型的对象。当然,如果它们都继承自某个类,你可以把这些派生类,都放到一个数组中。如果这些对象都有同名方法,就可以调用每个对象的同名方法。 同一操作作用于不同的对象,...
阅读全文
C#多态性02
摘要:首先理解一下什么叫多态。同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,这就是多态性。多态性通过派生类覆写基类中的虚函数型方法来实现。多态性分为两种,一种是编译时的多态性,一种是运行时的多态性。编译时的多态性:编译时的多态性是通过重载来实现的。对于非虚的成员来说,系统在编译时,根据传递的参数、返回的类型等信息决定实现何种操作。运行时的多态性:运行时的多态性就是指直到系统运行时,才根...
阅读全文
C#多态性01
摘要:多态性(Polymorphism)一词最早用于生物学,指同一种族的生物体具有相同的特性。在C#中多态性的定义是:同一操作作用于不同的类的实例、不同的类将进行不同的解释、最后产生不同的执行结果。C#支持两种类型的多态性:编译时的多态性(静态联编)编译时的多态性是通过重载来实现的。方法重载和操作符重载、它们都实现了编译时的多态性。对于非虚的成员来说系统在编译时根据传递的参数、返回的类型等信息决定实现何...
阅读全文
虚方法(virtual)和抽象方法(abstract)的区别
摘要:虚方法和抽象方法都可以供派生类重写,它们之间有什么区别呢?1. 虚方法必须有实现部分(好像这句话有误!!!),抽象方法没有提供实现部分,抽象方法是一种强制派生类覆盖的方法,否则派生类将不能被实例化。如://抽象方法publicabstractclassAnimal{publicabstractvoidSleep();publicabstractvoidEat();}//虚方法publicclass...
阅读全文
C#泛型集合揽胜
摘要:集合是OOP中的一个重要概念,C#中对集合的全面支持更是该语言的精华之一为什么要用泛型集合? 在C# 2.0之前,主要可以通过两种方式实现集合:a.使用ArrayList 直接将对象放入ArrayList,操作直观,但由于集合中的项是Object类型,因此每次使用都必须进行繁琐的类型转换。 b.使用自定义集合类 比较常见的做法是从CollectionBase抽象类继承一个自定义类,通过对IList...
阅读全文
C#-Socket通信如何实现?
摘要:最近做项目,需要用C#语言写个UDP的底层通讯的类。看了2本书,书上说的都好象简单了些。 后来请教了高手一些思路。3个线程:1-用来send数据包;2-用来receive数据包;3-用来判断超时。当数据包send出去后,就把包标识等等信息放到一个链接表中去,然后等候应答。如果1秒种后没收到应答就再send一次,连续3次没收到应答,就把该包从链接表中摘掉,返回一个消息;如果有receive到应答,就...
阅读全文
LINQ 查询介绍
摘要:语言集成查询 (LINQ)LINQ 查询介绍查询是一种从数据源检索数据的表达式。查询通常用专门的查询语言来表示。随着时间的推移,人们已经为各种数据源开发了不同的语言;例如,用于关系数据库的 SQL 和用于 XML 的 XQuery。因此,开发人员不得不针对他们必须支持的每种数据源或数据格式而学习新的查询语言。LINQ 通过提供一种跨各种数据源和数据格式使用数据的一致模型,简化了这一情况。在 LIN...
阅读全文
关于委托和事件的理解
摘要:在c#中对于委托的概念不好理解。对于C++程序员可以比较好理解。属于函数回调的概念。但对于没有面向对象或者初学者,理解起来有点难度。下面是个人在学习过程中的一点理解。虽然理解不是太深入。但对于初学者一定有所帮助。1、委托的声明:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><accessmodifier>delegate<returnType>HandlerName([parameters])例如: Code hig
阅读全文
[推荐]C#里的委托和事件实现Observer(观察者)
摘要:一、委托的简介 1、委托的声明: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->delegateHandlerName([parameters])例如: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->publicdelegatevoidPrintHandler(stringstr); 委
阅读全文
抽象类与接口
摘要:注意!我在这里所描述的抽象类和接口是基于C#的。一、抽象类:抽象类是特殊的类,只是不能被实例化;除此以外,具有类的其他特性;重要的是抽象类可以包括抽象方法,这是普通类所不能的。抽象方法只能声明于抽象类中,且不包含任何实现,派生类必须覆盖它们。另外,抽象类可以派生自一个抽象类,可以覆盖基类的抽象方法也可以不覆盖,如果不覆盖,则其派生类必须覆盖它们。publicabstractclassA2{3pri...
阅读全文
C#反射实例讲解
摘要:创建用于反射使用的DLL 新建一个C#类库项目,拷贝源代码如下,编译生成DLL(假如DLL的文件名是TestReflect.dll)usingSystem;namespaceWebtest{/**//**//**////<summary>///ReflectTest的摘要说明。///</summary>publicclassReflectTest{publicReflect...
阅读全文
浅谈C#托管程序中的资源释放问题
摘要:终于开始动手写这篇文章了,有个网友催了我好几次,而我要么因为手头有事,要么就是被其他思路给叉开,以至这篇文章拖了好久还没开始写,今天终于可以静下心来完成它。用了.net工具来写程序的人,不难发现它有个好处,就是使用的内存不用释放,尤其在使用C#或者VB.Net来写程序,因为程序所占用的内存都是受系统托管的,因此内存的释放不需要程序员去操心。很多人从C语言或者C++等等语言转型过来,对于这一点往往很...
阅读全文
深入剖析C#多态性
摘要:本节课将介绍C#的多态性,其目的包括: 1.了解什么是多态性 2.如何定义一个虚方法 3.如何重载一个虚方法 4.如何在程序中运用多态性 面向对象程序设计中的另外一个重要概念是多态性。在运行时,可以通过指向基类的指针,来调用实现派生类中的方法。 可以把一组对象放到一个数组中,然后调用它们的方法,在这种场合下,多态性作用就体现出来了,这些对象不必是相同类型的对象。当然,如果它们都继承自某个类,你可以...
阅读全文
C#中接口的理解
摘要:接口的相关陈述1.一个接口定义了一个契约。2.接口可以包容方法、C#属性、事件、以及索引器。3.在一个接口声明中,我们可以声明零个或者多个成员。4.所有接口成员的默认访问类型都是public。5.如果在接口成员声明中包括了任何修饰符,那么会产生一个编译器错误。6.与一个非抽象类类似,一个抽象类必须提供接口中所有成员的实现,只要这些成员在这个类的基类中出现过。接口的理解1. 面向接口编程利用OO的一...
阅读全文
C# 反射入门知识
摘要:1、 什么是反射2、 命名空间与装配件的关系3、 运行期得到类型信息有什么用4、 如何使用反射获取类型5、 如何根据类型来动态创建对象6、 如何获取方法以及动态调用方法7、 动态创建委托1、什么是反射 Reflection,中文翻译为反射。 这是.Net中获取运行时类型信息的方式,.Net的应用程序由几个部分:‘程序集(Assembly)’、‘模块(Module...
阅读全文
一个浅显易懂的反射例子
摘要:反射,就是程序集的一面镜子,所以才叫反射.废话少说,以一个简单的例子切入正题吧:1 创建用于反射使用的DLL 新建一个C#类库项目,拷贝源代码如下,编译生成DLL(假如DLL的文件名是TestReflect.dll)代码如下:usingSystem;namespaceWebtest{/**////<summary>///SummarydescriptionforReflectTest....
阅读全文