Производный класс Вызов статического метода базового класса в собственном статическом методе

Я прочитал следующие статьи SO

Все кажутся очень близкими к моему вопросу и имеют хорошие ответы, но они, похоже, не отвечают на мой вопрос, кроме как сказать, что мне нужно сделать метод нестатическим.

пример:

abstract public class baseClass
{
    private static List attributeNames = new List(new string {"property1","property2"});
    // code for property definition and access
    virtual public static bool ValidAttribtue(string attributeName)
    {
        if (attributeNames.Contains(attributeName))
            return true;
        else
            return false;
    }
}
class derivedA : baseClass
{
    private static List attributeNames = new List(new string {"property3","property4"});
    // code for property definition and access
    public static override bool ValidAttribute(string attributeName)
    {
        if (attributeNames.Contains(attributeName))
        {
            return true;
        }
        else
        {
            return base.ValidAttribute(attributeName);
        }
    }
}
class derivedB : baseClass
{
    private static List attributeNames = new List(new string {"property10","property11"});
    // code for property definition and access
    public static override bool ValidAttribute(string attributeName)
    {
        if (attributeNames.Contains(attributeName))
        {
            return true;
        }
        else
        {
            return base.ValidAttribute(attributeName);
        }
    }
}

производныйA будет иметь свойства 1,2,3,4, а производныйB будет иметь свойства 1,2,10,11. Список свойств, по-видимому, является значением, специфичным для класса, и его нельзя изменить в любой момент. Я бы подумал, что тогда это будет статично.

Является ли мой дизайн неправильным в том смысле, что я пытаюсь использовать статические методы, когда они не должны быть?

Приведенный выше пример наводит меня на мысль о необходимости наследования статических методов, однако кажется, что попытка сделать это является недостатком дизайна. Может ли кто-нибудь помочь мне понять, что не так с кодированием или структурированием классов таким образом?

5
задан Community 23 May 2017 в 11:43
поделиться