Question

J'ai une structure nommée WaveSize pour représenter à la fois une quantité d'échantillons ou d'une quantité de temps, mais j'utilise également cette structure pour représenter une position ou un décalage dans une vague.

Alors qu'il est assez commun pour représenter les tailles et positions au sein d'un système de coordonnées avec un type Vector2d, je suis incapable de trouver un bon nom assez abstrait pour représenter des longueurs d'onde et des vagues positions / décalages.

Je trouve étrange de voir quelque chose comme:

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

Je préfère venir avec un bon nom que la création de classes vides ou en utilisant « utilisant ».

Toutes les suggestions seront très appréciés. Merci à l'avance.

EDIT:. Comme Reed Copsey & Marc Gravel a suggéré qu'il fait beaucoup de sens d'avoir deux classes différentes, car ils sont deux concepts différents, donc, des similitudes dans le code doivent être considérées comme de simples coïncidences

Était-ce utile?

La solution

J'aurais deux struct séparés, et faire des conversions faciles entre eux.

Vous essayez de représenter deux concepts ici, l'une pour la position et l'autre pour la taille. Étant donné que ces deux idées distinctes sur le plan conceptuel, je les fais deux struct.

Je suis d'accord aussi avec réponse de Marc Gravell concernant le point / Taille de struct de la BCL. Je pense qu'ils sont un bon modèle à suivre.

Autres conseils

Vous pouvez comparer aux WinForms et Point structures ... ils Size ont décidé que, même si elles sont semblables, pour les tenir séparés. Il est logique au sens algébrique:

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

etc

vecteur d'onde?

Pourriez-vous un struct appelé simplement Wave et puis la taille et le décalage serait bien ajusté dans le nom plus général? J'espère que vous n'avez pas une vague struct déjà:)

est-ce pas le nom usuel pour le « offset » le déphasage?

Je serais probablement aller avec WaveProperties, vraiment.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top