Dar*_*Zon 5 c# oop abstract-class class internal
可能重复:
c#内部抽象类,如何隐藏程序集外的用法
我有一个共同的程序集/项目,有几个抽象类.当我创建一个新的程序集时,开发人员应该从派生MathProblem和MathProblemTemplate<T>类派生.
所以,我猜这个类MathProblemTemplate可以internal,我的意思是当你计划将一个基类设置为一个具体的类,而不是在intellisense中显示该类MathProblemTemplate,但是是的MathProblemTemplate<T>
// Question classes
public abstract class Question
{
protected QuestionTemplate Template { get; private set; }
public Question(QuestionTemplate template)
{
this.Template = template;
}
}
public abstract class MathProblem : Question
{
public MathProblem(MathProblemTemplate template)
: base(template)
{
}
}
// QuestionTemplate classes
public abstract class QuestionTemplate
{
public QuestionTemplate() { }
}
// This is the class which I'd like to hide
public abstract class MathProblemTemplate : QuestionTemplate
{
}
public abstract class MathProblemTemplate<T> : MathProblemTemplate
{
protected abstract T Method1();
protected abstract T Method2();
}
Run Code Online (Sandbox Code Playgroud)
这可能吗?
你不能,因为它MathProblemTemplate<T>是公共的,因此它继承的任何类也需要是公共的。
您可以删除MathProblemTemplate其中的任何代码并将其移动到MathProblemTemplate<T>
| 归档时间: |
|
| 查看次数: |
214 次 |
| 最近记录: |