如何改写这段代码,换掉switch?
现在有一个方法,是给它一个字符串变量,然后实例化同样名称的window窗体并打开。
我用switch是可以实现,但总觉得不舒服,下面可能会有70多个case,不是要死人吗?
求教能不能用其他方法来实现?
理想状态:给这个方法一个字符串变量,就能实例化一个名称跟这个变量一样的window实例? 
 
private void OpenWindow(string strWindowName)
        {
            //获取的变量名来打开对应的窗口
            switch (strWindowName)
            {
                case "Window1":
                    //实例化Window1(已经引用了命名空间,Window1是存在的,可实例化的)
                    Window1 window1 = new Window1();
                    //打开Window1
                    window1.Show();  
                    break;
                case "Window2":
                    Window2 window2 = new Window2();
                    window2.Show();
                    break;
                default:
                    break;
            }
        }
------解决方案--------------------用反射
Activator.CreateInstance
http://msdn.microsoft.com/en-us/library/d133hta4(v=vs.110).aspx
------解决方案--------------------赞成用反射
------解决方案--------------------private form getWindow(string typeName)
{
	object ab = Activator.CreateInstance(null, typeName).Unwrap();
	return (form)ab;
}
大概这么弄就可以了,typeName要写类型的全名