Как указано в другом ответе, статическое поле базового класса будет общим для всех подклассов. Если вам нужна отдельная копия для каждого окончательного подкласса, вы можете использовать статический словарь с именем подкласса в качестве ключа:
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;
}
}