Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Multiplikation mit Sets
Nersgatt - Di 16.09.14 10:48
Titel: Multiplikation mit Sets
Moin,
beim lesen des Quelltextes von TDataSet bin ich auf folgenden Schnippsel gestoßen:
Delphi-Quelltext
1: 2: 3: 4:
| if Active then if ([csUpdating, csDesigning] * ComponentState) <> [] then Close else DatabaseError(SDataSetOpen, Self); |
Kann mir jemand die markierte Zeile erklären? Ich denke, da wird geprüft, ob ComponentState csUpdating oder csDesigning ist. Aber warum mit dieser Multiplikation? Was passiert da intern?
Danke!
Gammatester - Di 16.09.14 11:00
Für Sets bedeutet * den Mengendurchschnitt (engl intersection), d.h. die Menge der Elemente die in beiden Mengen des Durchschnitts vorhanden sind.
Wenn csUpdating keine csDesigning Menge sondern Elemente sind, kann man Deine Bedingung auch als
(csUpdating in ComponentState) or (csDesigning in ComponentState)
schreiben.
Nersgatt - Di 16.09.14 11:07
Danke. Man lernt doch immer noch dazu. :D
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!