Duplicar posible:
c# internal abstract class, how to hide usage outside assembly¿Cómo ocultar una clase con una palabra clave interna?
que tienen una Asamblea común/proyecto que tiene varias clases abstractas. Cuando creo un nuevo conjunto, el desarrollador debe derivar de las clases MathProblem
y MathProblemTemplate<T>
.
tanto, creo que la clase MathProblemTemplate
puede ser internal
, me refiero a cuando se va a establecer una clase base a una clase concreta, no se muestran en intelisense la clase MathProblemTemplate
, pero sí para 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();
}
Es esto posible?
¿Ha leído [esta pregunta pertinente] (http://stackoverflow.com/questions/1244953/c-sharp-internal-abstract-class -how-to-hide-usage-outside-assembly) que aparecieron en la lista cuando hizo su pregunta? –
Sí, lo he leído, pero sigo recibiendo errores como: Accesibilidad incoherente: la clase base 'DevNinja.Core.Models.MathProblemTemplate' es menos accesible que la clase 'DevNinja.Core.Models.MathProblemTemplate' –
Hmm, sí, estás usando plantillas que lo hacen diferente. –