Pergunta

Eu tenho uma estrutura chamada WaveSize para representar tanto um montante de amostras ou uma quantidade de tempo, mas eu também estou usando esta estrutura para representar uma posição ou um deslocamento dentro de uma onda.

Embora seja comum bastante para representar ambos os tamanhos e posições dentro de um sistema de coordenadas com um tipo Vector2D, eu sou incapaz de encontrar um nome bom o suficiente abstrato para representar comprimentos de onda ea onda posições / offsets.

Eu acho estranho ver algo como:

public WaveSize Size { get; }
public WaveSize Offset { get; }

Eu prefiro vir para cima com um nome bem do que a criação de classes vazias ou usando 'usando'.

Todas as sugestões serão muito apreciados. Agradecemos antecipadamente.

EDIT:. Como Reed Copsey & Marc Gravel sugeriu que faz muito sentido ter duas classes diferentes, uma vez que são dois conceitos diferentes, por isso, quaisquer semelhanças no código devem ser vistos como meras coincidências

Foi útil?

Solução

Eu teria duas estruturas separadas, e fazer conversões fáceis entre eles.

Você está tentando representam dois conceitos aqui, um para a posição, e um para o tamanho. Uma vez que estas são duas ideias conceitualmente distintos, eu torná-los duas estruturas.

Também concordo com a resposta de Marc Gravell sobre estruturas Point / Tamanho do BCL. Eu acho que eles são um bom modelo a seguir.

Outras dicas

Você poderia comparar com as estruturas winforms Point e Size ... eles decidiram que, mesmo se eles são semelhantes, para mantê-los separados. Faz sentido, no sentido algébrico:

Point - Point = Size
Point + Size = Point
Size + Size = Size
Point + Piont = ???? error (no defined operator)

etc

vetor de onda?

Você poderia ter um struct chamado simplesmente Wave e, em seguida, tamanho e deslocamento caberia confortavelmente no nome mais geral? Eu espero que você não tem uma estrutura de onda já:)

Não é o nome usual para o deslocamento de fase 'offset'?

Eu provavelmente ir com WaveProperties, realmente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top