我有一個字符串列表,它將具有不同的事件類型名稱。代碼如下:在c#中從字符串列表中動態創建類
public class Main
{
public void Run()
{
List<string> classList = new List<string>
{
"Event_one",
"Event_two"
};
foreach (string item in classList)
{
IEvent ent;
switch (item)
{
case "Event_one":
ent = new EventOne();
ent.HandlEvent();
break;
case "Event_two":
ent = new EventTwo();
ent.HandlEvent();
break;
}
}
}
}
public class EventOne : IEvent
{
public void HandlEvent()
{
throw new NotImplementedException();
}
}
public class EventTwo : IEvent
{
public void HandlEvent()
{
throw new NotImplementedException();
}
}
public interface IEvent
{
void HandlEvent();
}
如何刪除switch語句並使代碼更鬆散耦合? 我的代碼位於網站/ app_code內。
'刪除開關statement'你到底要什麼呢?你顯然需要一個工廠模式,但是你必須對你的輸入做一些測試,以知道你想要哪個實例。你可以使用反射,但我不會爭辯說,直到你有理由使用它,它纔會更好。 – Jonesopolis
您可以使用字典而不是switch語句,這可能會使代碼更清晰一些。見https://gist.github.com/jcebuck/6d57e70761ebabf1a3aa83fb27af077a –
@詹姆斯巴克感謝這是更清潔。 – Joshua