संभव डुप्लिकेट:
c# internal abstract class, how to hide usage outside assemblyआंतरिक कीवर्ड का उपयोग कर कक्षा को कैसे छुपाएं?
मैं कई सार वर्गों है कि एक आम सभा/परियोजना है। जब मैं एक नई असेंबली बनाता हूं, तो डेवलपर को MathProblem
और MathProblemTemplate<T>
कक्षाओं से प्राप्त करना चाहिए।
तो, मैं के लिए 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();
}
है लगता है कि वर्ग MathProblemTemplate
internal
हो सकता है, मेरा मतलब है जब आप एक ठोस वर्ग के लिए एक आधार वर्ग सेट नहीं IntelliSense में वर्ग MathProblemTemplate
दिखाने की योजना है, लेकिन हाँ यह संभव है?
आप पढ़ सकते हैं [इस प्रासंगिक सवाल] (http://stackoverflow.com/questions/1244953/c-sharp-internal-abstract-class यह किसी भी कोड को स्थानांतरित कर सकता है -how-to-hide-use-out-assembly) जो आपके प्रश्न पूछने पर सूची में दिखाई देता है? –
हां, मैंने इसे पढ़ लिया है, लेकिन मुझे अभी भी त्रुटियां मिल रही हैं: असंगत पहुंच: बेस क्लास 'DevNinja.Core.Models.MathProblemTemplate' कक्षा से कम पहुंच योग्य है 'DevNinja.Core.Models.MathProblemTemplate' –
हम्म, हाँ, आप टेम्पलेट्स का उपयोग कर रहे हैं जो इसे अलग बनाता है। –