vb.net用不同的接口实现策略模式

发布于 2024-11-14 09:17:26 字数 435 浏览 3 评论 0原文

是否可以在VB.net中实现具有不同参数的策略模式? 例如,我有以下代码:

Public Interface InterfaceDataManipulation
Sub updateMyData()
End Interface

如何在使用不同参数实现上述接口类的类中实现 updateMyData,例如在类 x 中:

Public Class X
Implements InterfaceDataManipulation
Public Sub updateMyData(ByVal x as String)
 Console.Writeline(x)
End Sub
End Class

但是 IDE 会引发错误“类 x 必须在接口 InterfaceDataManipulation 上实现 updateMyData”

is it possible to implement strategy pattern with different parameters in VB.net?
For example I have the following code:

Public Interface InterfaceDataManipulation
Sub updateMyData()
End Interface

How to implemente updateMyData in the class that implements above interface class with different parameter, for example in class x :

Public Class X
Implements InterfaceDataManipulation
Public Sub updateMyData(ByVal x as String)
 Console.Writeline(x)
End Sub
End Class

But the IDE raises an error "class x must implement updateMyData on interface InterfaceDataManipulation"

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

浮萍、无处依 2024-11-21 09:17:26

通过添加参数,您并没有实现接口 - 接口的想法是人们只需了解接口即可使用您的类 - 因此您的带有参数的子将不符合他们的期望。

给这只猫剥皮的方法可能有很多,但以下是其中一些选项:

  • 不要使用接口
  • 将您的 updateMyData 版本实现为重载,但您仍然应该实现不带参数的原始版本 将
  • x 作为 a 传递属性到您的类,然后 updateMyData 方法可以使用该属性,同时仍然具有与接口匹配的签名。

By adding a parameter you're not implementing the interface - The idea of the interface is that people can use your class by only knowing about the interface -so your sub with parameter wouldn't match their expectations.

There are probably many ways of skinning this cat, but these are a few of the options:

  • Don't use the interface
  • Implement your version of updateMyData as an overload, but you should still implement the original without the parameter aswell
  • Pass in x as a property to your class, that the updateMyData method can then use, while still having a signature that matches the interface.
一花一树开 2024-11-21 09:17:26
Public Class X
Implements InterfaceDataManipulation
Public Sub updateMyData(ByVal x as String) Implements InterfaceDataManipulation.updateMyData
 Console.Writeline(x)
End Sub
End Class

方法签名需要附加其在接口中实现的方法,如上所示。

Public Class X
Implements InterfaceDataManipulation
Public Sub updateMyData(ByVal x as String) Implements InterfaceDataManipulation.updateMyData
 Console.Writeline(x)
End Sub
End Class

The method signature needs to be appended with the method it is implementing in the interface as show above.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文