HDSoftware Skrevet 14. mai 2008 Skrevet 14. mai 2008 Prøver å lage en generisk klasse (tror jeg) som skal håndtere et medlem av en brukergruppe. I programmet vårt har vi definert brukergrupper som kan være medlem av brukergrupper, slik som i NT domene. Dermed vil en bruker kunne være inndirekte medlem av en brukergruppe, fordi en gruppe kan være medlem av andre grupper. I vinduet der jeg vil vise bruker gruppens medlemmer vil jeg vise en liste som har både brukere og grupper. Vil det være hensiktsmessig å lage en generisk klassse som representerer postene i listen, eller ville du lagd en klasse som inneholdt begge deler? Altså noe slikt (sammendratt): // generisk variant class MemberClass<tMember> { tMember ThisMember; .... } // Andre varianten class MemberClass { UserClass _ThisUser; UsergroupClass _ThisUsergroup bool _IsUser; .... } Deres meninger folkens... ;-) Takker på forhånd Ole
GeirGrusom Skrevet 14. mai 2008 Skrevet 14. mai 2008 Mitt forslag: public class PermissionSet { public Permission InheritedPermissionSet { get; } // blablabla } public class User { public string Username { get; set;} public int PasswordHash { get; set; } // Etc. public PermissionSet AssignedPermissions { ... } public PermissionSet PermissionGroup { ... } } Eller noe i den duren.
HDSoftware Skrevet 14. mai 2008 Forfatter Skrevet 14. mai 2008 Mitt forslag: public class PermissionSet { public Permission InheritedPermissionSet { get; } // blablabla } public class User { public string Username { get; set;} public int PasswordHash { get; set; } // Etc. public PermissionSet AssignedPermissions { ... } public PermissionSet PermissionGroup { ... } } Eller noe i den duren. Dette var nok litt OffTopic ;-) UserClass og UsergroupClass er ferdige og kjører som bare det. Dette handler mer om visningen. Har en Form som viser gruppen og dens medlemmer. Medlemmene er representert i en liste. Greia er at et medlem kan være en bruker eller en brukergruppe. Skal derfor lage en klasse som skal brukes in en List<MemberClass> som igjen skal være datasource til en listbox. Det er MemberClass som er saken her. Ville du laget den generisk eller ville du brukt UserClass og UsergroupClass som komponenter i MemberClass ? Ole
GeirGrusom Skrevet 14. mai 2008 Skrevet 14. mai 2008 (endret) Jeg ville jeg brukt inheritence eller interface for å kunne legge begge deler i samme liste. edit: men hvis de allerede er ferdig, så er det ikke så mye å gjøre med det. Generics blir ikke en snarvei, fordi MemberClass<UserClass> er en helt annen klasse en MemberClass<UserGroup> og kan ikke blandes. Endret 14. mai 2008 av GeirGrusom
HDSoftware Skrevet 14. mai 2008 Forfatter Skrevet 14. mai 2008 Jeg ville jeg brukt inheritence eller interface for å kunne legge begge deler i samme liste. edit: men hvis de allerede er ferdig, så er det ikke så mye å gjøre med det. Generics blir ikke en snarvei, fordi MemberClass<UserClass> er en helt annen klasse en MemberClass<UserGroup> og kan ikke blandes. Ok. Var nesten det jeg tenkte meg. Interface ville kansje vært veien å gå. Skal vurdere det... I Clarion kan jeg implementere så mange interface jeg vil. Går ut ifra at man kan det i C# også. Ole
steingrim Skrevet 14. mai 2008 Skrevet 14. mai 2008 Man kan arve så mange interface man vil ja. Men man kan bare arve fra én klasse.
HDSoftware Skrevet 14. mai 2008 Forfatter Skrevet 14. mai 2008 Man kan arve så mange interface man vil ja. Men man kan bare arve fra én klasse. Ok. I Clarion gjør jeg slik: MyClass CLASS(BaseClass),implements(IF1, IF2, IF3, ..., IFn) <stuff> END Du er sikkert snill og forteller hvordan man gjør det i SE SKARP ;-)
steingrim Skrevet 14. mai 2008 Skrevet 14. mai 2008 Vurdert å kjøpe en bok? class MyClass : IFoo, IBar, IZot { // ... }
HDSoftware Skrevet 14. mai 2008 Forfatter Skrevet 14. mai 2008 Vurdert å kjøpe en bok? class MyClass : IFoo, IBar, IZot { // ... } bok? Har masse bøker, plus MSDN. Bruker det ganske mye, men bare når jeg trenger det. Trengte egentlig ikek infoen om interface akkurat nå, men siden du var i farta så tenkte jeg det var på sin plass å fullføre temaet i denne tråden. Nyttig for andre som søker vettu ;-)
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå