thể trùng lặp:
c# internal abstract class, how to hide usage outside assemblyLàm thế nào để ẩn một lớp bằng cách sử dụng từ khóa nội bộ?
Tôi có một hội đồng chung/dự án mà có một số lớp trừu tượng. Khi tôi tạo một hội đồng mới, nhà phát triển sẽ lấy được từ các lớp MathProblem
và MathProblemTemplate<T>
.
Vì vậy, tôi đoán lớp MathProblemTemplate
có thể internal
, tôi có nghĩa là khi bạn có kế hoạch để thiết lập một lớp cơ sở để một lớp bê tông, không hiển thị trong IntelliSense lớp MathProblemTemplate
, nhưng có cho 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 điều này có thể?
Có bạn đọc [câu hỏi này có liên quan] (http://stackoverflow.com/questions/1244953/c-sharp-internal-abstract-class -how-to-hide-usage-outside-assembly) xuất hiện trong danh sách khi bạn hỏi câu hỏi của bạn? –
Có, tôi đã đọc nó, nhưng tôi vẫn nhận được lỗi như: Khả năng truy cập không phù hợp: lớp cơ sở 'DevNinja.Core.Models.MathProblemTemplate' ít truy cập hơn lớp 'DevNinja.Core.Models.MathProblemTemplate' –
Hmm, vâng, bạn đang sử dụng các mẫu làm cho nó khác nhau. –