问题标签 [generic-interface]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 通用接口
这是我的代码
当我编译这个时,我得到一个错误Type parameter declaration must be an identifier not a type
为什么我不能拥有ToEntity<MyOtherClass>
却只能拥有ToEntity<T>
??
编辑:在MyOtherClass
做什么?我正在为多个表/类在实体(相当于实体框架的 POCO)和记录(框架返回的对象)之间进行转换。所以我想用它来做我的类特定转换
c# - 如何处理私有成员访问器和集合?
我有这样的班级层次结构
现在我想编写一个单元测试来比较 A 的两个实例是否在属性 KeyedCollection 中具有相同的项目 B。但是,我无法在 A 实例中执行 foreach 循环。我试过的,
这段代码甚至无法编译,因为 C 类访问器没有实现 IEnumerable 接口(它没有实现 KeyedCollection 类的任何接口)。有谁知道我该如何克服这个问题?
我收到的错误消息是
foreach 语句不能对“C”类型的变量进行操作,因为“A_Accessor.C”不包含“GetEnumerator”的公共定义
java - 为什么对通用 DAO 接口中的方法使用默认访问?
我在浏览时发现了这个通用 DAO 接口的代码:
是否有任何理由让方法使用默认访问修饰符(类/包:是,子类/世界:否)?
PS:一个附加的问题。ID 通常在不依赖于 RDBMS(XML、平面文件...)的实现中找到吗?
c# - 如何在 Ninject 中绑定泛型接口
我对 Ninject 还很陌生,当我开始实现通用存储库模式时,我发现自己磕磕绊绊。我想将依赖项 IRepository<IEntityType>绑定到ConcreteRepository<EntityType>类,其中 ConcreteRepository<T> 实现 IRepository<T> 并且 EntityType 实现 IEntityType。我试过这个:
...但是 Ninject 不会接受,因为它不知道也不关心 EntityType 实现了 IEntityType。我该如何去绑定这个依赖?
更新
这是我得到的错误:
错误 3 类型“ICM.Dependency.Repository.ConcreteRepository”不能用作泛型类型或方法“Ninject.Syntax.IBindingToSyntax.To()”中的类型参数“TImplementation”。没有从“ConcreteRepository<EntityType>”到“IRepository<IEntityType>”的隐式引用转换。
解决方案
我仍然不太明白为什么我的绑定不起作用,但显然我在那里错误地使用了泛型。因此,该解决方案与 NInject 并不真正相关。我结束了指定 ConcreteRepository 以将 IEntityType 与 TEntityType 显式连接:
那么注入可以写成如下:
c# - 泛化存储库接口
任何人都可以提出一种通用化以下接口的方法,这样我就可以拥有一个接口,而不是每个存储库一个。
c# - 通用接口重载。有效的术语?
这是一个非常基本的方法重载示例,两个方法名称相同但签名不同:
现在假设我定义了两个通用接口,共享完全相同的名称但类型参数数量不同,例如:
我可以说这代表“通用接口重载”吗?还是“重载”术语仅适用于这种情况下的方法?它看起来仍然与方法重载非常相似,因为我们保持完全相同的名称但改变了参数。
如果我不能说“通用接口重载/重载”,对于这两个共享相同名称的不同接口我能说什么?
谢谢和抱歉,如果这是一个愚蠢的问题,但是谷歌搜索“通用接口重载”或“通用接口重载”并没有给我太多,而是关于接口方法重载的结果,这不是我感兴趣的。
c# - 接口通用层次结构
我有一些相互链接的通用接口。
对于最后一个类 c,我有一个错误:
类型“b”不能用作泛型类型或方法“IC”中的类型参数“T”。没有从“b”到“IB”的隐式引用转换。
在这种情况下如何正确使用通用接口?
delphi - 在类正在实现的泛型接口中使用在泛型类中声明的嵌套类型
我有一个类 List 的通用类tMyList<B>
,其方法 Each() 迭代每个元素并tMyList<A>.enumProc
使用参数调用匿名过程 - 当前类型的项目<B>
。我想将该类实现为接口,以便于生命周期管理。
问题是我不能在iMyList<A>
接口中声明 Each 方法,因为tMyList<A>.enumProc
类型未知。据我所知接口不支持嵌套类型?
这是代码:
*
在这种特殊情况下,实施枚举器不是一种选择
java - Using isAssignableFrom() with generic interface
I try to find a way to do it but i didn't find out, please let me know if my question has already been asked.
Basically i have a generic interface Evaluator<E, T>
with a single method E evaluate(T a, T b)
which will be implemented by lot of classes (for each Evaluator
implementation correspond a specific algorithm). The class which use those evaluators use an XML configuration file which indicate which Evaluator
class to use. To get an Evaluator
from a given class name i decided to set a EvaluatorProvider
class which build a evaluator from a given classe name.
This method is also generic :
I want to ensure that the class found for this name is a valid subclass of Evaluator
using isAssignableFrom()
:
But it gives me a warning about unchecked cast, i was wondering then how to take in account the generic type provided for the class checking (using isAssignableFrom()
or any other valid java mecanism).
Hope it was clear :).
PS : If you have other suggestion for the solution design please let me know, i am curious about the best way to modelize such system in Java, without run in ServiceProvider pattern which is too big for the project need.
c# - StyleCop 和 MultipleGenericInterfaces 和 CA1033
我有一个IBakeable<T>
有事件的界面OnCooked
几个数据类Pie
和Bread
我有一个实现IBakeable<Pie>
和IBakeable<Bread>
为了实现这一点,我认为我必须明确地实现接口
并且类是继承的
现在我得到相当于:
CA1033 接口方法应该可以被子类型调用
使“BaseHeatSource”密封(如果该类先前已发布,则为重大更改),非显式实现该方法,或实现公开“IBakeable.OnCooked.add(EventHandler)”功能且对派生类可见的新方法.
如果派生类型重新实现(显式)继承的接口方法,则不能再访问基实现。通过当前实例引用的调用将调用派生实现;这会导致递归和最终的堆栈溢出。
请注意,添加
不解决规则。
我必须禁止这条规则吗?或者有没有办法解决它?