gpt4 book ai didi

c# - C#中接口(interface)的不同用途

转载 作者:太空宇宙 更新时间:2023-11-03 21:40:42 25 4
gpt4 key购买 nike

我阅读了很多有关 C# 的文章并进行了第一次实践练习,但我仍然是一个初学者,并且在我尝试理解现有但未完成的 MVC 概念程序的某个时刻有点迷茫。

我了解接口(interface)的用途以及我必须如何实现一个类的接口(interface)或另一个接口(interface)以获得对其包含的成员、函数等的访问权限,但在现有代码中我发现了接口(interface)的另一种用法(在类):

  private IViewControl m_viewControl = null;
private IModelControl m_modelControl = null;

这段代码没有出现在实现这两个接口(interface)的类中,而是出现在根本没有实现这两个接口(interface)的类中!

所以我的问题是:

  • 如何调用接口(interface)的用法?这显然不是接口(interface)的常规实现。
  • 通过这种使用界面的方式,我获得了什么样的可能性?

非常感谢!

弯曲

请原谅我的英语,我不是母语人士。


嘿,

非常感谢大家的回答,甚至不能说哪个是最好的,因为所有的答案似乎都有帮助!我想我开始明白这是怎么回事了。

再次感谢!

最佳答案

包含这些行的类

private IViewControl m_viewControl = null;
private IModelControl m_modelControl = null;

有 2 个对实现这些接口(interface)的其他类的引用。所以回答你的第一个问题,这不是接口(interface)的实现,而是接口(interface)的使用。

回答您的第二个问题:这正是我们使用接口(interface)的原因。使用这些接口(interface)的类不关心它们的实现。在您的开发过程中,您可以为一个或另一个编写虚拟实现,因为您现在不需要它,但您仍然可以运行和测试应用程序的其余部分。

另一个例子:假设你想编写一个使用某些数据库的应用程序。将所有数据库逻辑置于一个接口(interface)之后。在您的应用程序的版本 1 中,您可能会使用 SQL 数据库。写入数据库的类是否知道它是一个 SQL 数据库?不,他们不需要。所以现在您继续前进并决定要使用不同的数据库系统。您只需更改接口(interface)背后的实现即可。

希望这对您有所帮助。

关于c# - C#中接口(interface)的不同用途,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19403888/

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