加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读