gpt4 book ai didi

c# - 通用接口(interface)类签名

转载 作者:太空宇宙 更新时间:2023-11-03 20:00:05 24 4
gpt4 key购买 nike

我得到了继承,我只是不明白为什么这个接口(interface)会自己实现?

另外,请您解释一下底气部分的作用是什么?为什么我不能只说 T 是 IIdentifiableEntity 的位置,而不是所有那些逗号分隔的部分?

public interface IDataRepository<T> : IDataRepository
**where T : class, IIdentifiableEntity, new()**

最佳答案

这里的问题不止一个。我会一一解答:

Why this interface implements itself?

事实并非如此。这里有两种类型.. 一种是通用的.. 一种是非通用的。为什么要实现非泛型?谁知道呢……我们需要查看整个数据层才能理解。不过,重要的是要认识到它们是两种类型。

Why can I not just say where T is IIdentifiableEntity

同样,这取决于您的用例。 class强制引用类型作为泛型参数。因此,您将无法创建 IDataRepository<int> 的实例。 .这在数据层中是有意义的……因为您通常希望保留整个对象/图形,并且它们通常是引用类型。 new()允许您使用 var x = new T()在你的通用类型中。没有它,如果您尝试实例化泛型类型参数的实例,将会出现编译器错误。

关于c# - 通用接口(interface)类签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29444852/

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