我有这样的事情如何调用类型T的传递T作为字符串或“T”的方法
public void FunctionName<T>(){
}
,并呼吁这一点,你需要的是这样的
sub main(){
FunctionName<Integer>();
}
我的问题是我可以通过整数作为“整数”?
sub main(){
FunctionName<"Integer">();
}
或有任何其他方式向
确定这里是我的实际代码
private static T Convert<T>(DataRow row) where T : new()
{
T model = new T();
Type modelType = model.GetType();
FieldInfo[] fields = null;
FieldInfo field = default(FieldInfo);
Type fieldType = null;
string fieldName = null;
fields = modelType.GetFields(BindingFlags.Public | BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Static);
foreach (field in fields) {
fieldType = field.FieldType;
fieldName = field.Name.Replace("_", string.Empty);
Interaction.CallByName(model, fieldName, Microsoft.VisualBasic.CallType.Set, GetValue(row, fieldName, fieldType.Name));
}
return model;
}
static void main(){
Student s;
s = Convert<Student>(DatabaseRow);
}
这里的问题是我只能得到学生为 字符串(“学生” )从某个地方,将使用此代码 任何其他解决方案,以得到这个权利?
WTF是与'子'的东西? – leppie 2012-08-05 16:11:37
@泰米尔:这个问题看起来很清楚。 – 2012-08-05 16:14:05
你确定你用C#编程吗?也许你应该改变你的问题的标签,包括实际的语言('sub'听起来像VB) – Tipx 2012-08-05 16:19:37