首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在EntitySet<T>中使用通用<T>

如何在EntitySet<T>中使用通用<T>
EN

Stack Overflow用户
提问于 2012-06-27 04:57:43
回答 1查看 547关注 0票数 1

我有一个运算,它需要在三种类型的EntitySets上运行;但是,每种类型的数据都是相同的。Linq- to -SQL正在创建这三种类型,以便与我的数据库中的几个介于“补间”的表相匹配。

有没有一种方法可以像下面这样处理泛型EntitySet类型?

代码语言:javascript
复制
private EntitySet<T> GetClientHorizontal(EntitySet<T> clientHorizontal) {}

它是为了解决下面的冗余问题。

代码语言:javascript
复制
private EntitySet<LeafHorizontal> 
   GetClientLeafHorizontal(EntitySet<LeafHorizontal> clientLeafHorizontal) { }

private EntitySet<BayHorizontal>
   GetClientBayHorizontal(EntitySet<BayHorizontal> clientBayHorizontal) { }

private EntitySet<SideliteHorizontal>
   GetClientSideliteHorizontal(
      EntitySet<SideliteHorizontal> clientSideliteHorizontal) { }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-27 05:21:18

如果您说这三个类几乎相同-那么您可以创建一个具有公共成员的接口或基类:

代码语言:javascript
复制
interface IHorizontal
{
  int SuperValue { get; set; }
}

然后,您需要从此接口继承LeafHorizontal、BayHorizontal和SideliteHorizontal类:

代码语言:javascript
复制
public partial class LeafHorizontal : IHorizontal { ... }
public partial class BayHorizontal : IHorizontal { ... }
public partial class SideliteHorizontal : IHorizontal { ... }

之后,您可以创建泛型方法:

代码语言:javascript
复制
private EntitySet<T> GetClientBayHorizontal(EntitySet<T> clientBayHorizontal)  where T : IHorizontal 
{
    clientBayHorizontal.SuperValue++;
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11215812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档