C# c在控制器构造函数中使用接口和类有什么用途
在我的一次采访中,我面临这样一个问题:为什么要使用下面提到的界面 接口 回购信用证 家政人员C# c在控制器构造函数中使用接口和类有什么用途,c#,C#,在我的一次采访中,我面临这样一个问题:为什么要使用下面提到的界面 接口 回购信用证 家政人员 请帮助我为什么在HomeController的构造函数中使用Irepo。它的用途是什么?使用接口的简单示例,希望能解释一下: 接口 接口实现 用法 如果声明IAnimal类型的变量,则可以存储实现接口的任何类型。如果你现在不知道你得到的是哪种类型的动物,这会很有用,因为在这个例子中,你只想知道动物是否有毛皮。在这种情况下,一个原因是提高了可测试性。稍后,当您为家庭控制器编写单元测试时,您不希望在家庭控制
请帮助我为什么在HomeController的构造函数中使用Irepo。它的用途是什么?使用接口的简单示例,希望能解释一下: 接口 接口实现 用法
如果声明IAnimal类型的变量,则可以存储实现接口的任何类型。如果你现在不知道你得到的是哪种类型的动物,这会很有用,因为在这个例子中,你只想知道动物是否有毛皮。在这种情况下,一个原因是提高了可测试性。稍后,当您为家庭控制器编写单元测试时,您不希望在家庭控制器内使用实际的Repo对象。因为在执行单元测试时,您不想读/写实际的数据库。接口IRepo将允许您注入实际回购的虚假或模拟 你为什么能帮我?我想这是因为不清楚你要什么。我们说不出你为什么要这样使用你的界面。请看一下问题的答案。同样,你的代码中缺少格式和大量的打字错误,因此这几乎是不可理解的,因为你可以_Iobjrepo=new AnotherRepo,而不破坏依赖它的现有代码,原因之一。
Interface Irepo{
void add(int a, int b);
}
Public Class Repo:Irepo{
public void add(int a, int b){
}
Public Clas HomeController:ApiController{
Private readonly Irepo _Iobjrepo;
public HomeController(){
_Iobjrepo =new Repo();
}
}
interface IAnimal
{
bool HasFur;
}
class Cat : IAnimal
{
public bool HasFur => true;
public Cat()
{
}
}
class Fish : IAnimal
{
public bool HasFur => false;
public FIsh()
{
}
}
IAnimal anyTypeOfAnimal = new Cat();
IAnimal anotherAnimal = new Fish();
public void TestInterface(IAnimal obj)
{
Console.Log(obj.HasFur);
}
TestInterface(anyTypeOfAnimal.HasFur); //True
TestInterface(anotherAnimal.HasFur); //False