问题标签 [interface-implementation]

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.

0 投票
2 回答
3102 浏览

php - PHP接口实现拒绝参数上的子类

考虑一下:

在我的概念中,上面应该可以工作,但它不会因为 php 拒绝要求第一个参数与接口 (I) 中定义的类型 (A) 完全相同的实现。由于 B 是 A 的子类,我看不出有什么问题。我在这里错过了什么吗?

0 投票
2 回答
2611 浏览

c# - 在 C# 中,是否可以像在 VB.NET 中那样使用具有不同名称的成员来实现接口成员?

好的,这是我要问的一个问题,不是在展示良好的编码实践(这实际上可能被认为是一种不好的做法),而是关于“可以”它是否可以完成。

也就是说,在 VB.NET 中,您实现了这样的接口......

而在 C# 中,您可以像这样明确地执行此操作(只能通过接口调用)...

或者更简单地说,隐含地像这样(在这种情况下,您可以直接调用它,或者通过接口调用它)......

但是,关于 VB,您也可以使用您想要的任何成员名称来执行此操作...

换句话说,处理实现的方法可以具有与接口的成员名称完全不同的名称。

我只是想知道 C# 中是否有类似的东西。(是的,我知道我可以简单地做一个显式接口,然后通过另一个具有不同名称的“包装器”成员访问它,该名称只是委托给它,但在 VB.NET 中,您可以使用一个方法来完成这两个操作。)

那么可以做到吗?

标记

0 投票
1 回答
1032 浏览

c# - LINQ to SQL 对象实现接口?

在我的数据库中,我有以下表格

我的应用程序中相应的 POCO 类

我有接口 IExpression

我的应用程序中的一个业务对象聚合了一个 IExpression 类型的对象,如下所示

这样做是因为 MyBusinessObject 上的此属性可以是 CustomExpression 或 GlobalExpression 类型,但它是动态决定的。

这一切都很好,但我被指示取出 CustomExpression 和 GlobalExpression 对象并直接使用 CustomExpression 和 GlobalExpression linqtosql 对象。这使我不必在每次需要对数据库执行某些操作时都从 POCO 转换为 linqtosql 对象。

这个问题是,我不再有实现 IExpression 接口的 CustomExpression 和 GlobalExpression 对象。

在这种情况下我该怎么办?有没有办法用这些对象来表示与该接口的这种关系?

0 投票
4 回答
5865 浏览

vba - 一个类可以扩展 Collection 对象吗?

我正在尝试Collection在新类中扩展 VBA 对象的功能并使此类成为的继承者Collection,但该Implements Collection语句给了我以下错误:

工具接口错误:方法名称中带有下划线。

什么下划线?!AddItemRemoveCount是文档中列出的唯一方法Collection。所有四个都没有下划线。

编辑:为了澄清,我正在制作一个名为的类UniformCollection(仅接受相同类型的成员,受此方法的启发)。我希望它实现 Collection,以便 aUniformCollection 是 a Collection并且可以Collection在调用其他对象的方法等时代替 a 使用。

我知道我必须为 Add、Item 等编写委派方法/属性,并为For Each工作编写一个 NewEnum 属性,而且我已经这样做了。

我的问题是该Implements Collection语句给了我上述错误。

奖金问题:是Count方法还是属性Collection?帮助将其称为属性,但 VBA 编辑器中的对象浏览器将其称为函数,即方法(飞黄框)。

0 投票
6 回答
1999 浏览

c# - 是否允许类在 C# 中实现接口和其他私有方法?

我有以下界面

这是由以下实现的:

我的代码编译没有任何问题,但我想知道添加不在接口定义中的私有方法(或通常任何方法)是否是一种好的 OO 编程实践

0 投票
4 回答
3680 浏览

objective-c - libxml2 是否支持 XPath 2.0?

我尝试使用XPath 2.0exp //span/string(.)in libxml2,但它不起作用。
所以,我的问题是:libxml2支持XPath 2.0与否?

0 投票
1 回答
1487 浏览

.net - DataTable 是否实现 IListSource?

文档(和智能感知)非常清楚地说明了DataTable实现IListSource. 但是为什么没有方法,它是接口的(主要)DataTable部分?getList()IListView

0 投票
1 回答
60 浏览

java - 如何允许作为接口实现的线程与 JWindow 对象进行通信?

如何让网络计数器值包含在我的Main JButton 目标中?我正在做这样的事情:

主.java:

进程.java

网络.java

网络监听器.java

0 投票
0 回答
15434 浏览

c# - 两个参数导致“类型中的方法没有实现”异常?

我有一个包含多个项目的解决方案。与该问题相关的是 API 类库、CustomTriggers 类库和网站。CustomTriggers 和网站都引用 API。CustomTriggers 实现位于 API 中的接口 ITrigger。

问题是,如果我在接口 ITrigger 的“运行”方法中定义了一个参数,则一切正常,但是如果我定义了两个参数,则程序集中的“CustomTriggers.*”类型中的“方法“运行”*没有实现' 抛出异常。我不明白为什么。

界面:

'CustomTriggers' 项目中实现 ITrigger 的类:

[不] 抛出异常的方法 [stub]:

所以......这段代码符合并运行得很好。看不到烦恼。

但是当我向“ITrigger”和“SomeTrigger”的“运行”方法添加另一个参数时

它在注释指示的行中引发异常:

我完全没主意了。一点帮助?

0 投票
3 回答
167 浏览

c# - 多次实施尝试

我正在开发一种解决方案,该解决方案将连接到各种服务器以读取数据并执行操作。有许多变量会使可靠通信复杂化,例如防火墙、停止/失败的服务、身份验证差异和各种软件配置。我可以使用一些方法来解决这些问题,尽管在执行时不知道哪种方法会成功。

我的目标是创建一个可用于执行操作的接口和实现。第一个方法调用将是适用于大多数设备的最快实现,然后是其他可以处理前面列出的问题的调用。

在一个完美的世界中,该过程将被编写为快速确定哪种方法会成功,但在我的测试中,处理时间与简单地捕获异常一样多。虽然性能始终是一个考虑因素,但最终成功完成任务更为重要。

下面是我创建的一个示例,它演示了迭代实现列表的最坏情况。虽然这适用于一种方法,但在 20 种或更多不同操作中使用时,它不遵循 DRY 原则。一种可能的解决方案是 Unity 和 Interception,但我发现调用处理程序中的调用方法使用已解决的实现,而不是可能实现的列表。除非我遗漏了什么,否则这似乎不是一个选择。另外,我需要为几个接口遵循这个模式,所以最好创建一个可以迭代实现列表的通用处理程序。

任何有关如何完成此任务的建议将不胜感激!

界面

实现

特殊实现循环通过其他实现,直到一个成功无一例外