标签:默认 编码 class eve 属性 模式 event 类对象 事件操作
在使用C#的过程中,经常会使用到委托、接口以及父类来实现一些复杂的逻辑和设计模式,本文针对三者的特性,对其使用情景及原理进行初步研究。
*委托
设A类对象包含一个B类对象。
Class A
{
int intA;
Class B;
Public void ChangeA()
{
//操作intA属性
};
}
Class B
{
Public Delegate void DelegateB();
Public Event DelegateB delegateB;
int intB;
Public void ChangeB()
{
//操作intB属性
}
Public Void ChangeA() { delegateB(); }
}
存在一个A类的实例,若A要操作B的intB属性,可以直接调用B的函数ChangeB,但是当B需要改变实例A的intA属性时,却不能直接调用ChangeA。此时,可以使用委托来实现,在B中放置委托事件delegateB,并绑定函数:B.delegateB += A.ChangeA。这样,当调用B.ChangeA时,实现了对intA属性的操作。
*接口
public interface Iinterface
{
int A{get;set;}
void interfaceA();
}
接口可以用于程序模块化设计,以及程序的后期扩展。一般来说,接口的使用有两种情况:
1.Interface是一个类的方法、属性的抽象,上层结构负责调用接口属性、方法,下层负责接口的实例化,实现多态。
2.当一个类的实例化过程和类的操作使用过程不在同一模块,可以使用类接口进行操作编码,程序运行时,将实例化的类赋给类接口。
注:接口中不能放委托、不能Clone 。
*父类
父类的功能与接口类似,只是父类提供了每个方法的默认实现,子类可以选择重写该方法。
当2个类是具体的类时,使用委托,可以方便的实现观察者模式。但是,当涉及到具体类和接口之间的事件操作时,由于接口类型中不能放置委托类型,不能直接使用。
上述方法相当于Java中的委托实现,定义一个接口,定义A类去继承该接口,在B类中实现一个绑定方法Bind(A a)。
标签:默认 编码 class eve 属性 模式 event 类对象 事件操作
原文地址:https://www.cnblogs.com/zritical/p/9062839.html