KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I know this question has been asked before, but I have yet to see a short, clear answer, so I'm hoping they won't remove this question and I will now get a clear answer: I am currently working in C# 5.0; .NET 4.5; VS 2012. I am mostly a Delphi guy although I've done lots with C#. In Delphi I have written hundreds of class factories that use the following sort of design (MUCH SIMPLIFIED HERE): unit uFactory; interface type TClassofMyClass = class of TMyClass; TFactoryDict = TDictionary<TMyEnum, TClassofMyClass>; var fDict:TFactoryDict; implementation procedure initDict; begin fDict:=TFactoryDict.create; fDict.add(myEnum1, TMyClass1); fDict.add(myEnum2, TMyClass2); fDict.add(myEnum3, TMyClass3); end; function Factory(const aEnum: TMyEnum): TMyClass; var ClassofMyClass: TClassofMyClass; begin if fDict.TryGetValue(aEnum, ClassofMyClass) then result := ClassofMyClass.Create(aParam); end; end. Now: HOW do I do something like this in C#?! Seems there is NO 'class of ' type in C#. Am I missing something? How can I implement this type of class factory simply and elegantly in C#? This design can be implemented in Python as well - why should C# be worse?!
Tags (comma-separated)
Save Edits
Cancel