私はこの質問が以前に尋ねられたことを知っていますが、私はまだ短い、明確な答えを見ていないので、私は彼らがこの質問を削除しないことを望んでおり、C#のDelphiクラス
私は現在C#5.0で作業しています。 .NET 4.5; VS 2012.私はC#でたくさんのことをしたが、私は主にDelphiの人です。 Delphiで
私は(ここで多く簡体字)デザインの次の並べ替えを使用するクラスファクトリの何百も書きました:今
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.
を:どのように私はC#で、このようなことを行うのですか? NO C#の 'class of'タイプのようです。何か不足していますか? C#でこのタイプのクラスファクトリを簡単かつエレガントに実装するにはどうすればよいですか?この設計はPythonでも実装できます.C#を悪化させるのはなぜですか?
TMyClass1およびTMyClass2サブクラスはTMyClassですか? – Martheen
@martheenはい、それはTMyClassのクラスによって強制されます –