防止暴露基类(抽象类)于是看了很多相关的题,好像都不合适。至少在我目前的理解中不是。由于这是一个简单的问题,我将简要描述我的问题和代码。我有五个类:internalclassAinternalabstractclassB:AinternalabstractclassC:BpublicclassD:CpublicclassE{publicvoidX(Cc){}}这里有个明显的可访问性问题,参数C在公共方法中使用。我需要在不暴露类C的情况下访问类D。我相信这可能是由于abstract关键字的性质和我对它的最少经验。到目前为止,我从来没有必要创建抽象类,这是我第一次在这个级别处理它。据我了解,在这种情况下,只要我记得正确实现所有内容,您就不必使用抽象类。我的问题笔记我已经阅读了很多相关的帖子(这里有一些):您可以使用界面来隐藏细节。考虑一下://This表示契约,不考虑底层对象publicinterfaceISomeObject{}//类是内部的,但实现了接口internalclassA:ISomeObject{}internalabstractclassB:A{}internalabstractclassC:B{}//类D还是内部的internalclassD:C{}publicclassE{//方法使用接口,是publicpublicvoidX(ISomeObjectc){}publicISomeObjectDoSomething(){//创建内部类,返回使用(作为合同)returnnewD();}}示例用法:vare=newE();varresult=e.DoSomething();EX(结果);这是可行的,因为从外部的角度来看,您处理的是公共合同,而不是实际的实施。以上就是《C#学习教程:防止基类(抽象类)的暴露》分享的全部内容。涉及侵权,请点击维权联系管理员删除。如需转载请注明出处:
