RobiHerb
Level-2
- Beiträge
- 679
- Reaktionspunkte
- 113
-> Hier kostenlos registrieren
@Werner29
Danke für die Klärung,
die REF Lösung ist schon verstanden, aber ich habe eine Safety Anwendung (SIL 2 in ST) zu programmieren und da sind mir mit internen Vorschriften Referenzen (auch als "expert") verboten. Spätestens von meinem Review Partner bekomme ich dann "geht nicht" beschieden. Sonst würde ich durchweg VAR_IN_OUT verwenden.
Das Performance Problem ist hier auf mich den Applikations Programmierer verschoben, denn dann muss ich alles temporär kopieren oder für jedes benötigte Element der struct Property eine eigene Get Property anlegen.
In C# ist die Dereferenzierung einer Property Struct erlaubt. Das ist eine Frage, wie tief (intelligent) der Compiler den Ausdruck analysiert, denn er weiss ja, dass ich nur das eine Element der Struct an dieser Stelle benötige.
Noch ein Hinweis allgemein zur OOP: Wenn ich Methoden etc. anlege, sind sie aus "Gründen der Kompatibilität" automatisch PUBLIC, es wäre defensiver sie PROTECTED oder PRIVATE zu machen, ggf. könnte man so etwas in den Options einstellen, aber zumindest vom Editor automatisch das Schlüsselwort PUBLIC einfügen.
Bitte das nicht als Verriss ansehen, ich muss auch TIA manchmal einsetzen und da hat Codesys Lichtjahre Vorsprung.
Danke für die Klärung,
die REF Lösung ist schon verstanden, aber ich habe eine Safety Anwendung (SIL 2 in ST) zu programmieren und da sind mir mit internen Vorschriften Referenzen (auch als "expert") verboten. Spätestens von meinem Review Partner bekomme ich dann "geht nicht" beschieden. Sonst würde ich durchweg VAR_IN_OUT verwenden.
Das Performance Problem ist hier auf mich den Applikations Programmierer verschoben, denn dann muss ich alles temporär kopieren oder für jedes benötigte Element der struct Property eine eigene Get Property anlegen.
In C# ist die Dereferenzierung einer Property Struct erlaubt. Das ist eine Frage, wie tief (intelligent) der Compiler den Ausdruck analysiert, denn er weiss ja, dass ich nur das eine Element der Struct an dieser Stelle benötige.
Noch ein Hinweis allgemein zur OOP: Wenn ich Methoden etc. anlege, sind sie aus "Gründen der Kompatibilität" automatisch PUBLIC, es wäre defensiver sie PROTECTED oder PRIVATE zu machen, ggf. könnte man so etwas in den Options einstellen, aber zumindest vom Editor automatisch das Schlüsselwort PUBLIC einfügen.
Bitte das nicht als Verriss ansehen, ich muss auch TIA manchmal einsetzen und da hat Codesys Lichtjahre Vorsprung.