Come per citarne struct che rappresenta sia una dimensione e una posizione?
-
21-08-2019 - |
Domanda
Ho una struttura di nome WaveSize per rappresentare sia una quantità di campioni o una quantità di tempo, ma sto utilizzando anche tale struttura per rappresentare una posizione o un offset all'interno di un'onda.
Mentre è abbastanza comune per rappresentare entrambe le dimensioni e le posizioni all'interno di un sistema di coordinate con un tipo Vector2D, io sono in grado di trovare un buon nome abbastanza astratto per rappresentare lunghezze d'onda e onda posizioni / offset.
Trovo strano vedere qualcosa di simile:
public WaveSize Size { get; }
public WaveSize Offset { get; }
preferirei venire con un buon nome che la creazione di classi vuote o usando 'usando'.
Ogni suggerimento sarà molto apprezzato. Grazie in anticipo.
EDIT:. Come Reed Copsey & Marc Gravel ha suggerito che fa un sacco di senso avere due classi diverse in quanto si tratta di due concetti diversi, così, eventuali somiglianze nel codice dovrebbero essere visti come semplici coincidenze
Soluzione
Vorrei avere due le strutture separate e effettuare conversioni facile tra di loro.
Si sta cercando di rappresentare due concetti qui, uno per la posizione, e uno per le dimensioni. Dal momento che si tratta di due idee concettualmente distinte, farei loro due strutture.
Sono anche d'accordo con di Marc Gravell risposta per quanto riguarda le strutture / dimensione in punti del BCL. Penso che siano un buon modello da seguire.
Altri suggerimenti
Si potrebbe paragonare alle WinForms Point
e Size
strutture ... hanno deciso che, anche se sono simili, per tenerli separati. Ha senso al senso algebrico:
Point - Point = Size
Point + Size = Point
Size + Size = Size
Point + Piont = ???? error (no defined operator)
etc
vettore d'onda?
Potrebbe avere una struct chiamato semplicemente Wave e quindi dimensioni e offset si adatterebbe perfettamente nel nome più generale? Spero che non avete un Saluto Struct già:)
Non è il nome usuale per la 'compensazione' lo sfasamento?
probabilmente sarei andare con WaveProperties, davvero.