Ich versuche mein Vorhaben mal durch ein Beispiel zu erläutern.
Ich habe eine Klasse Transform.
Diese hat verschiedene Properties. Unter anderem auch Position, und LocalPosition vom Typ
Ich suche nun nach einer Möglichkeit alle Namen der Properties vom Typ Vector3 auszulesen. Außerdem möchte ich die Properties über den Namen lesen und schreiben können.
Das ganze möchte ich jedoch ohne Reflection lösen.
Ich habe mir als Alternative überlegt das ganze in einem Dictionary<string, Vector3> zu speichern. So kann ich alle Namen der Properties auslesen (Keys) und auch die Werte setzten (Values)
Problem dabei ist allerdings, dass ich dann theoretisch für jeden Typ ein eigenes Dictionary brauchen würde.
Ideal wäre es, wenn ich das irgendwie so aufrufen könnte
Und dass es intern irgendwie einfacher verwaltet wird.
Hat da vielleicht einer von euch Profis eine Idee wie man das machen könnte?
Wäre sehr geil wenn da jemand was hätte
Grüße
Hier noch meine Beispielimplementierung
Ich habe eine Klasse Transform.
Diese hat verschiedene Properties. Unter anderem auch Position, und LocalPosition vom Typ
Vector3
.Ich suche nun nach einer Möglichkeit alle Namen der Properties vom Typ Vector3 auszulesen. Außerdem möchte ich die Properties über den Namen lesen und schreiben können.
Das ganze möchte ich jedoch ohne Reflection lösen.
Ich habe mir als Alternative überlegt das ganze in einem Dictionary<string, Vector3> zu speichern. So kann ich alle Namen der Properties auslesen (Keys) und auch die Werte setzten (Values)
Problem dabei ist allerdings, dass ich dann theoretisch für jeden Typ ein eigenes Dictionary brauchen würde.
Ideal wäre es, wenn ich das irgendwie so aufrufen könnte
string[] names = GetNames(typeof(Vector3));
(Oder generisch)Und dass es intern irgendwie einfacher verwaltet wird.
Hat da vielleicht einer von euch Profis eine Idee wie man das machen könnte?
Wäre sehr geil wenn da jemand was hätte
Grüße
Hier noch meine Beispielimplementierung
C#-Quellcode
- public class Transform
- {
- public Dictionary<string, Vector3> vectors = new Dictionary<string, Vector3>();
- public Transform()
- {
- vectors.Add("position", new Vector3());
- vectors.Add("localPosition", new Vector3());
- }
- public Vector3 GetVector3(string name)
- {
- return vectors[name];
- }
- // ...
- private Vector3 _position;
- public Vector3 Position
- {
- get
- {
- return _position;
- }
- set
- {
- _position = value;
- vectors["position"] = _position;
- }
- }
- private Vector3 _localPosition;
- public Vector3 LocalPosition
- {
- get
- {
- return _localPosition;
- }
- set
- {
- _localPosition = value;
- vectors["LocalPosition"] = _position;
- }
- }
- // ...
- }