Frage

Ich habe eine Struktur namens WaveSize sowohl eine Menge von Proben oder eine Menge an Zeit darzustellen, aber ich bin auch mit dieser Struktur eine Position zu vertreten oder in einem Wellenversatz.

Während es ziemlich üblich ist, beide Größen und Positionen innerhalb eines Koordinatensystems darstellen mit einem Vector2d Typ, ich bin nicht in der Lage, einen guten Namen abstrakt genug zu finden, um Wellenlängen und Wellen Positionen / Offsets darstellen.

Ich finde seltsam zu sehen, so etwas wie:

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

Ich würde lieber mit einem guten Namen kommt als leere Klassen erstellen oder mit ‚verwenden‘.

wird Irgendwelche Vorschläge sehr geschätzt werden. Vielen Dank im Voraus.

EDIT:. Als Reed Copsey & Marc Gravel schlug es viel Sinn macht, zwei verschiedene Klassen zu haben, da sie zwei unterschiedliche Konzepte sind, so sollten alle Ähnlichkeiten im Code als bloße Zufälle zu sehen

War es hilfreich?

Lösung

Ich würde zwei getrennte Strukturen haben, und machen Umwandlungen leicht zwischen ihnen.

Sie versuchen, hier zwei Konzepte darstellen, eine für die Position und eine für Größe. Da diese zwei konzeptionell unterschiedliche Ideen sind, würde ich sie zwei structs machen.

Ich stimme auch mit Marc GRA Antwort den Punkt / Größe structs des BCL in Bezug auf. Ich denke, sie sind ein gutes Modell zu folgen.

Andere Tipps

Sie könnten im Vergleich zu den winforms Point und Size Strukturen ... sie entschieden, dass, auch wenn sie ähnlich sind, zu halten, sie zu trennen. Es macht Sinn, in dem algebraischen Sinne:

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

etc

Wellenvektor?

Könnten Sie eine Struktur namens einfach Welle und dann deine Größe und würde genau in die allgemeinere Name versetzt passen? Ich hoffe, dass Sie nicht über eine Wave-Struktur bereits:)

Ist das nicht der üblicher Name für die 'Offset' die Phasenverschiebung?

Ich würde wahrscheinlich mit WaveProperties gehen, wirklich.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top