을 당신이해야한다고 생각 디자인을 변경하십시오. abstract factory pattern을 사용할 수 있습니다. 리플렉션을 사용하면 성능이 저하됩니다.
다음은 공장 용 코드입니다.
public abstract class MyStore {
public abstract string Name { get; }
public abstract void AddItem(int id, string name);
}
추상 클래스에 코드가없는 경우 인터페이스 사용을 고려해 볼 수 있습니다.
그런 다음 고객 상점을 생성하십시오.
public class CustomerStore : MyStore, IEnumerable<Customer> {
List<Customer> list = new List<Customer>();
public override string Name { get { return "Customer Store"; } }
public override void AddItem(int id, string name) {
list.Add(new Customer(id, name));
}
public IEnumerator<Customer> GetEnumerator() {
return list.GetEnumerator();
}
}
사용
foreach (MyStore store in List<MyStore>)
store.AddItem(0, "None");
당신은 제네릭 형식은 IList의 형식 인수를 반환
switch (store.Name) {
case "Customer Store":
SomeMethod((CustomerStore)store);
break;
default:
throw new WhatEverException();
}
당신은 내가 그 C#을 추측하지만 어떤 곳은 .... – Peter
가 그래, 난 그냥 질문 나 자신을 볼 때, 감사 – user48408