![]() |
Delphi-Version: 5
Type Ableitung oder Parametereinschraenkung???
TType = (TT1, TT2, TT3, TT4, TT5, TT6, TT7);
TTypeNormal = (TT1, TT2, TT3, TT4, TT5, TT6); // Teilmenge von TType TTypeSpezial = (TT5, TT6, TT7); // Teilmenge von TType TNormal = class(TObject) public FType: TType; Constructor Create(lType: TType);// nur TTypeNormal zulaessig end; TSpezial = class(TNormal) public Constructor Create(lType: TType);// nur TTypeSpezial zulaessig end; Constructor TNormal.Create([TT1, TT2, TT3, TT4, TT5, TT6]);// nur TTypeNormal zulaessig Constructor TSepzial.Create([TT5, TT6, TT7]);// nur TTypeSpezial zulaessig Ich weiss, das der Code oben Syntaktisch falsch ist. Er ist nur fuer die Darstellung, was ich erreichen moechte. Ich habe einen Type und zwei Teilmengen von diesem. In dem Constructor moechte ich aber immer nur die passenden Typen als Auswahlmoeglichkeit anbieten. Gibt es eine Moeglichkeit, wie ich das realisieren kann? MfG DrTosh |
AW: Type Ableitung oder Parametereinschraenkung???
So vielleicht?
Delphi-Quellcode:
type
TType = (TT1, TT2, TT3, TT4, TT5, TT6, TT7); TTypeNormal = TT1 .. TT6; // Teilmenge von TType TTypeSpezial = TT5 .. TT7; // Teilmenge von TType TNormal = class(TObject) public FType: TType; Constructor Create(lType: TTypeNormal); // nur TTypeNormal zulaessig end; TSpezial = class(TNormal) public Constructor Create(lType: TTypeSpezial); // nur TTypeSpezial zulaessig end; Constructor TNormal.Create(lType: TTypeNormal); // nur TTypeNormal zulaessig begin end; Constructor TSpezial.Create(lType: TTypeSpezial); // nur TTypeSpezial zulaessig begin end; |
AW: Type Ableitung oder Parametereinschraenkung???
Zitat:
Vielen Dank. MfG DrTosh |
AW: Type Ableitung oder Parametereinschraenkung???
Zitat:
Denn so definiert sind das keine Teilmengen, sondern eigenständige Enums und dort ist TTypeSpezial.TT6=1, TTypeNormal.TT6=5 und TType.TT6=5. Ach ja, auch wenn du das in den Parametertypen begrenzt, dann betrifft dfas nur die direkte Übergabe, aber bei Übergabe in einer Vaiable, wird das nicht geprüft, was du dann notfalls selber zur Laufzeit nochmal prüfen müsstest. |
AW: Type Ableitung oder Parametereinschraenkung???
Ich denke das war ihm durchaus bewusst:
Zitat:
|
AW: Type Ableitung oder Parametereinschraenkung???
Ich arbeite bei so etwas gerne mit Sets.
Übergeben wird dann mit dem Set die Teimenge.
Delphi-Quellcode:
type
TType = (TT1, TT2, TT3, TT4, TT5, TT6, TT7); TTypeSet = set of TType; const TTypeNormal = [TT1 .. TT6]; TTypeSpezial = [TT5 .. TT7]; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:40 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz