gpt4 book ai didi

c# - 关于类定义中的语法问题

转载 作者:行者123 更新时间:2023-11-30 22:35:06 25 4
gpt4 key购买 nike

我开始根据这个 tutorial 实现存储库模式.现在在实现存储库接口(interface)的类的定义中。类的定义是这样的。

public class Repository<E,C> : IRepository<E,C>, IDisposable 
where E : EntityObject
where C : ObjectContext
{
}

有人可以解释一下,如果我用泛型定义了一个类,为什么我需要键入 where 来解释哪些是预期的对象??。我真的对这个话题感到困惑

最佳答案

where 约束类型是一种深思熟虑的选择,它有两个后果:

  1. 如果类型参数不满足这些约束,编译器将不允许您编写实例化泛型的代码,作为返回
  2. 它将允许您使用 E 类的对象和 C作为EntityObjectObjectContextRepository<,> 的定义范围内;否则,它不会让您访问这些类的成员(方法、属性等),因为它无法保证这些成员存在用于指定泛型的类型。

关于c# - 关于类定义中的语法问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7536024/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com