जैसा कि अन्य उत्तर में बताया गया है, बेस क्लास स्थिर क्षेत्र सभी उप-वर्गों के बीच साझा किया जाएगा। आप प्रत्येक अंतिम उपवर्ग के लिए एक अलग प्रतिलिपि की जरूरत है, तो आप एक कुंजी के रूप में एक उपवर्ग नाम के साथ एक स्थिर शब्दकोश का उपयोग कर सकते हैं:
class Base
{
private static Dictionary<string, int> myStaticFieldDict = new Dictionary<string, int>();
public int MyStaticField
{
get
{
return myStaticFieldDict.ContainsKey(this.GetType().Name)
? myStaticFieldDict[this.GetType().Name]
: default(int);
}
set
{
myStaticFieldDict[this.GetType().Name] = value;
}
}
void MyMethod()
{
MyStaticField = 42;
}
}
स्रोत
2015-08-19 23:52:02
Btw, तथ्य यह है कि आधार वर्ग 'है abstract' एक रेड हेरिंग है; इससे कोई फर्क नहीं पड़ता कि बेस क्लास 'अमूर्त' है या नहीं, व्यवहार @Marc Gravell इंगित करता है। – casperOne
@casperOne: मैं 'TypeLocal 'जैसे कुछ ढूंढ रहा था क्योंकि हमारे पास' थ्रेडलोकल 'है, इसलिए उस प्रकार की कोई भी वस्तु इसके संबंधित' सबक्लास 'में' स्थिर' होगी। –
Xaqron