Eventuali duplicati:
c# internal abstract class, how to hide usage outside assemblyCome nascondere una classe usando la parola chiave interna?
Ho un'assemblea comune/progetto che ha diverse classi astratte. Quando creo un nuovo assembly, lo sviluppatore dovrebbe derivare dalle classi MathProblem
e MathProblemTemplate<T>
.
Quindi, credo che la classe MathProblemTemplate
può essere internal
, voglio dire quando si prevede di impostare una classe base a una classe concreta, non mostrano nel intellisense classe MathProblemTemplate
, ma sì per 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();
}
Is questo possibile?
Hai letto [tale questione rilevante] (http://stackoverflow.com/questions/1244953/c-sharp-internal-abstract-class -how-to-hide-usage-outside-assembly) che è comparso nell'elenco quando hai posto la tua domanda? –
Sì, l'ho letto, ma sto ancora ricevendo errori come: Accessibilità incoerente: la classe base 'DevNinja.Core.Models.MathProblemTemplate' è meno accessibile della classe 'DevNinja.Core.Models.MathProblemTemplate' –
Hmm, sì, stai usando dei modelli che lo rendono diverso. –