Ich habe gerade bemerkt, dass Sie dies in C# tun können:C#: Wie funktioniert das: Unit myUnit = 5;
Unit myUnit = 5;
statt, dies zu tun mit:
Unit myUnit = new Unit(5);
Wer weiß, wie ich das mit meinem eigenen structs erreichen kann? Ich habe mir die Unit-Struktur mit Reflector angeschaut und festgestellt, dass das TypeConverter-Attribut verwendet wurde, aber nachdem ich einen benutzerdefinierten TypeConverter für meine Struktur erstellt hatte, konnte ich den Compiler immer noch nicht dazu bringen, diese bequeme Syntax zu erlauben.
Oooh immer neue Dinge zu lernen - kann nicht glauben, dass ich noch nie zuvor auf – cbp
vorgestoßen bin Es gibt auch eine "explizite" Besetzung - funktioniert gleich, aber der Anrufer muss hinzufügen (Unit); Wird normalerweise verwendet, wenn das Risiko eines Datenverlusts besteht (Genauigkeit/Bereich/Skalierung/etc - zum Beispiel float => int) –
Überladen von Operatoren ist sehr mächtig, aber treten Sie leicht dabei auf: Es ist einfach, Code zu machen, der am Ende ist sehr unvorhersehbar für die Wartungsprogrammierer. Verwenden Sie es, wenn es angemessen ist (z. B. der Fall Unit), aber übertreiben Sie es nicht. (Und immer sicherstellen, dass es gut dokumentiert ist!) –