-1

理由は聞かないでください。次のことを行う必要があります。
string cName = "ClassA";
List<cName> l = new List<cName>();
どうすればよいですか。

私のコード: オブジェクト - それはクラスです
public void MergeForm(List<object> lModel)
{
string className = lModel[0].GetType().Name;
List<className> list = new List<className>();
}

4

4 に答える 4

3

使用Assemmbly.GetTypes:

var l = Assembly.GetTypes().Where(t => t.Name == "ClassA").ToList();

完全な型名がある場合は、 を使用できますAssemmbly.GetType

完全な型名とアセンブリ修飾名があり、探している型が別のアセンブリにある場合は、 を使用しますType.GetType

于 2013-10-24T11:47:58.430 に答える
0

Activator.CreateInstanceメソッドを見てください。

于 2013-10-24T11:47:27.217 に答える
0
Type ac;
string cName = "ClassA";
switch (cName)
{
case "ClassA":
ac = typeof(ClassA);
break;
case "ClassB":
ac = typeof(ClassB);
break;
default:
ac = typeof(System.String);    
break;
}
var genericListType = typeof(List<>);
var specificListType = genericListType.MakeGenericType(ac);
var l= Activator.CreateInstance(specificListType);
于 2013-10-24T11:57:50.230 に答える