Bu sorunun daha önce sorulmuş olduğunu biliyorum, ancak henüz kısa ve net bir cevap görmedim, bu yüzden bu soruyu kaldırmayacaklarını umuyorum ve şimdi net bir cevap alacağım:Delphi Sınıfı C#
Şu anda C# 5.0; .NET 4.5; VS 2012. C# ile çok yapmam rağmen çoğunlukla bir Delphi adamım. Şimdi
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.
:
Delphi ben tasarımın aşağıdaki tür (COK BURADA BASİTLEŞTİRİLMİŞ) kullanan sınıf fabrikaların yüzlerce yazdım NASIL C# böyle bir şey yapacağız ?! C# türünde NO 'sınıfı var gibi görünüyor. Bir şey mi eksik? Bu tip bir sınıf fabrikasını C# 'da basit ve zarif bir şekilde nasıl uygularım? Bu tasarım Python'da da uygulanabilir - neden C# daha kötü olmalı ?!
Are TMyClass1 ve TMyClass2 alt sınıfları bir NullPointerException atacağım? – Martheen
@martheen evet, bu TMyClass –