Powiel możliwe:
c# internal abstract class, how to hide usage outside assemblyJak ukryć klasę za pomocą wewnętrznego słowa kluczowego?
mam wspólnego zespołu/projektu, który ma kilka klas abstrakcyjnych. Po utworzeniu nowego zestawu programista powinien wywodzić się z klas MathProblem
i MathProblemTemplate<T>
.
Tak, myślę, że klasa MathProblemTemplate
może być internal
, to znaczy, gdy masz zamiar ustawić klasę bazową do konkretnej klasy, nie wykazują w intellisense klasę MathProblemTemplate
, ale tak dla 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();
}
Czy to możliwe?
Czytałeś [to istotne pytanie] (http://stackoverflow.com/questions/1244953/c-sharp-internal-abstract-class -how-to-hide-usage-outside-assembly), które pojawiły się na liście, gdy zadałeś pytanie? –
Tak, czytałem, ale wciąż dostaję błędy: Niespójna dostępność: klasa podstawowa "DevNinja.Core.Models.MathProblemTemplate" jest mniej dostępna niż klasa "DevNinja.Core.Models.MathProblemTemplate ' –
Hmm, tak, używasz szablonów, dzięki czemu jest inny. –