Herança de campo estático de classe C # abstrata

Sinto como se tivesse pulado uma ou duas aulas de C #, mas aqui está o meu dilema:

Eu tenho uma classe abstrata da qual derivo várias classes filho.

Tenho certeza de que, para cada uma das classes filho, terei um construtor que precisa de um determinado objeto estático como modelo e esse objeto será diferente para cada uma das classes filho.

Minha primeira abordagem foi criar um objeto estático público na classe pai abstrata e, em seguida, antes de começar a criar instâncias das classes filho, eu o modificaria para cada uma delas, mas acontece que dessa maneira eu realmente faço apenas UMA objeto estático, para a classe abstrata, e cada uma de suas classes filho o usa.

Como eu poderia resolver o problema?

Para ser mais exato, aqui está o pseudocódigo:

A classe abstrata pai:

 abstract class AbstractClass
{
   static public ModelObject Model;
   ...
}

Uma das classes filho:

class Child : AbstractClass
{
    ...
    public Child()
    {
        this.someField = Model.someField;
    }
}

EDITAR:

O Model precisa ser um membro da classe "ModelObject", NÃO deve ser um singleton ou qualquer outra coisa.

EDIT2:

Para ser ainda mais exato, escolhi esta implementação para um jogo de xadrez: tenho uma classe abstrata para as peças de xadrez e as classes infantis representam as peças concretas do jogo: peões, cavaleiros etc.

A classe abstrata herda de MeshMatObject, uma classe que representa objetos 3d genéricos com a funcionalidade básica, como rotações, malhas, materiais, texturas etc. e define métodos abstratos para peças de jogos de xadrez, como GetPossibleMoves ().

O objeto Model do qual eu estava falando acima é um membro do MeshMatObject e, na minha opinião, deve ser definido fora da classe apenas uma vez e depois usado para todas as peças. Quero dizer: por exemplo, todos os peões têm a mesma malha e textura, por isso não vejo o objetivo de fornecer um modelo como parâmetro toda vez que você deseja fazer um peão.

questionAnswers(3)

yourAnswerToTheQuestion