gpt4 book ai didi

c# - 在 C# 中创建接口(interface)的对象

转载 作者:行者123 更新时间:2023-11-30 15:27:43 25 4
gpt4 key购买 nike

我正在学习使用 Entity Framework (我仍然是 Entity Framework 和 C# 的新手),

在学习其中一个教程时,我遇到了以下代码:

 public class EntityF : IEntityWithChangeTracker,IEntityWithKey
{
private IEntityChangeTracker changetracker;

public void SetChangeTracker(IEntityChangeTracker changetracker)
{
this.changetracker = changetracker;
}
}

我们可以像这样在一个类中引用另一个接口(interface)吗?:

 private IEntityChangeTracker changetracker;

甚至没有实现 IEntityChangeTracker 接口(interface)中定义的方法。

在此处的示例中使用接口(interface)实例 IEntityChangeTracker 的目的可能是什么。

直到现在(在练习 C# 教程时),我一直在接口(interface)中定义一些框架方法,继承它的类需要为它们提供实现。这是一个经典的例子,但这里的代码有些不同。任何人都可以让我知道定义这样的接口(interface)的目的吗?

最佳答案

What could be the purpose of using instance of an interface IEntityChangeTracker in the example here.

当接受一个接口(interface)而不是一个具体的实现时,您正在创建两个类之间的解耦。这意味着,代码的调用者可以自由传递任何实现上述接口(interface)的对象,而不是特定的具体类型。你对调用者说 “你可以传递任何实现上述接口(interface)的对象,我只关心它声明的成员/方法

通过这种方式,您也打开了一扇通向 Dependency Injection 的大门。并允许客户端支持 Interface Segregation Principle

关于c# - 在 C# 中创建接口(interface)的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26955003/

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