名稱(我很新的C#如此忍受我,開始3天前)創建一個子類的新實例時,我不想知道它
好,這裏是一般結構和理念
namespace Tokenize{
abstract class Token{
public Base(object id){
this.id = id;
}
private object id;
public object Id
{
get{...};
set{...};
}
public abstract object PerformOperation(object a, object b);
}
class NumberNine: Base{
public NumberNine(int num) : base(num){ }
public override int PerformOperation(int a, int b);
}
class LetterT: Base{
public LetterT(char letter) : base(letter){ }
public override string PerformOperation(string a, char b);
}
}
using Tokenize;
namespace Program{
class MyProg{
static void Main(string[] args)
{
Token token;
Stack stack;
//.....
//Read some input
string s = "T";
//.....
if(s==anonymousDerivedClassId){
//How do I come up with class LetterT and keep it anonymous?
Token token = new anonymousDerivedClass(); //
stack.Push(token)
}
//.....
//do some stuff
//.....
object a;
object b;
Token q = stack.Pop(token);
q.PerformOperation(a,b);
}
}
}
我想創建一個子類,其中i 不想知道它的名字的新實例?
我「不知道」是否存在?
希望這不是太複雜......
編輯:
我不想跟蹤基本上所有的子類的...
EDIT2(新例如):
考慮:
static void Main(string[] args)
{
Operator op;
string s = "*";
if(s==MulOperator.Identifier){
op = new MulOperator();
}
else{
op = new DivOperator();
}
perform(op);
}
static void perform(Operator op)
{
Console.WriteLine("Sum:{0}", op.PerformOperation(2.2,2.0));
}
我想擺脫new MulOperator()
和MulOperator.Identifier
與更通用的方法創建在這種情況下,Operator
的子類。
編輯3:*
(解決方案) 我要去嘗試A Generic Factory in C#, 好像這是我想達到的目標。
將字符串映射到工廠函數應該很好。 – 2011-04-26 14:53:14