.net 2.0中引入了部分类(Partial class)的特性。部分类允许将类的实现分开到不同的物理文件中。这个特性比较有用,它能够使程序员将不同的功能的方法放到不同的文件中,而又不需要创建新的类。这样便于文件管理。
而部分方法呢?难道它允许将方法实现分散到不同的文件中去?看了资料才知道,原来部分方法允许方法有一个存根和一个实现。存根就像是C++在头文件中的方法申明一样。当然,存根和实现也可以放到一个文件中。部分类有一个特点,如果不给部分方法提供实现,它就和方法的空实现一样,不产生任何效果。
那这个特性有什么用呢?
Partial方法只是在.net3.0中才引入新的特性。由于partial方法只能是private类型,因此只能在类的内部使用。
唯一想到用处的是提供像事件一样的效果。如果实现了部分方法,则相当于为事件指定了响应了函数。这样就免于写定义事件等相关代码了。
但是这也存在隐患。其理由是,既然你提供了方法,为什么不实现它?如果程序员忘记实现这个方法。就可能造成程序的错误。
总之,Partial方法其实也就是一个鸡肋。不用最好。.net 以后的版本
下面给出了使用部分类一个例子
Code
namespaceTestPartialMethod
{
partialclassTask
{
publicTask()
{
this.OnUpdate+=newEventHandler(Task_OnUpdate);
}
/**////<summary>
///测试入口
///</summary>
publicvoidDoTest()
{
stringmsg="ifupdatemethodisimpl..ed,thenthemsgwillshow.";
//调用部分方法
Update(msg);
//触发事件
RaiseOnUpdateEvent();
}
/**////<summary>
///部分方法存根
///</summary>
///<paramname="msg"></param>
partialvoidUpdate(stringmsg);
/**////<summary>
///事件定义
///</summary>
privateeventEventHandlerOnUpdate;
/**////<summary>
///触发事件辅助函数
///</summary>
privatevoidRaiseOnUpdateEvent()
{
if(OnUpdate!=null)
OnUpdate(this,EventArgs.Empty);
}
/**////<summary>
///部分方法实现
///</summary>
///<paramname="msg"></param>
partialvoidUpdate(stringmsg)
{
Console.WriteLine(msg);
}
/**////<summary>
///事件响应函数
///</summary>
///<paramname="sender"></param>
///<paramname="e"></param>
voidTask_OnUpdate(objectsender,EventArgse)
{
Console.WriteLine("ifeventishooked,thenthemsgwillshow.");
}
}
}
优质内容筛选与推荐>>
1、db2批量导出存储过程的语句2、Eclipse 中 Tomcat启动卡100%(preparing launch delegate...)3、Documentum中Presets访问失败问题处理4、网络原理以及常用工具 git Linux Maven等~5、锁
长按二维码向我转账
受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。