c# – 使用对象类型的Insert(T o)
发布时间:2020-12-15 23:57:46 所属栏目:百科 来源:网络整理
导读:我有一个方法 public void InsertT(T o) where T : class{ c.SetT().Add(o);} 我需要将它与对象类型一起使用 object x = ....r.Insert(x); 但因为它是一个对象T == object,但我需要它是x.GetType()类型 谁知道怎么做? 解决方法 你基本上必须通过反射调用它(
我有一个方法
public void Insert<T>(T o) where T : class { c.Set<T>().Add(o); } 我需要将它与对象类型一起使用 object x = .... r.Insert(x); 但因为它是一个对象T == object,但我需要它是x.GetType()类型 谁知道怎么做? 解决方法
你基本上必须通过反射调用它(例如使用MethodInfo.MakeGenericMethod).泛型是关于提供编译时类型安全性,而您在编译时不知道类型.或者,如果您使用的是C#4,则可以使用动态类型.
使用反射是一个痛苦: >编译时缺乏类型安全性,因此只能在测试中(或在生产中检测到错误!) 如果您使用的是C#4,动态类型解决方案将是: dynamic d = x; r.Insert(d); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |