void T GetProp<TEntity, T>(T entity, string propName) where T : xxx 这里的xxx 就就带有propName 的接口或父类的。
{
return entity.propName();这里这么写肯定是不对的。请问怎么写?
}
{
return entity.propName();这里这么写肯定是不对的。请问怎么写?
}
解决方案 »
- 求助想做一个类似计时器的东西
- System.Data.SqlClient.SqlException 异常
- 为什么我无法选取ListBox的值!?
- 新人求助:timer中如何限定运行次数?
- [Nhibernate问题]通过NHibernate取得dataset遇到问题!!!求助!!
- 关于注册表或配置文件的问题
- c#在Datagridview中中如何获取显示的数据
- 写什么代码都没反应了
- WebClient下载中文文件名文件时会404错误,100分求!~
- 急!!!!如何在图片或者文本中,对指定文字进行反转显示?????!!!!!!
- 一个泛型的问题?C#泛型代码怎么修改?
- 关于基本数据成员变量与控件的绑定
{
public string Name{}
}void T GetProp<TEntity, T>(T entity, string propName) where T : BaseT
{
return T.Name
}
想通过属性名字取属性值,是需要反射,但是这样无法在编译时自动推断T的类型,需要自己定义。这导致TEntity也没有意义。相当于
T GetProp<T>(object entity, string propName)
{
return (T)entity.GetType().GetProperty(propName).GetValue(entity);
}
事实上如果你在编译时已经知道了TEntity的具体类型,那么肯定能直接写属性取值了。
然后
Microsoft.VisualBasic.Interaction.CallByName(entity, propName, CallType.Get)
要么就是泛型约束 where: baseClass