【发布时间】:2017-03-08 01:02:41
【问题描述】:
我以前没有见过作为类成员实现的接口。有人可以解释发生了什么吗?你可以实例化一个接口吗?这些接口所需方法的实现在哪里?
public class MyClass
{
private readonly ITest1 interface1;
private readonly ITest2 interface2;
private readonly ITest3 interface3;
public MyClass(ITest1 interface1, ITest2 interface2, ITest3 interface3)
{
this.interface1 = interface1;
this.interface2 = interface2;
this.interface3 = interface3;
}
public void TestMethod()
{
var lines = interface1.GetData();
var file = interface2.Parse(lines);
interface3.Copy(file);
}
}
与我平时使用接口的方式相比有什么不同:
public class Person : IEquatable<Dog>
{
public int Age { get; set; }
public bool Equals(Dog d)
{
if (d.Age == this.Age)
return true;
else
return false;
}
}
public class Dog
{
public int Age { get; set; }
}
【问题讨论】:
-
无意冒犯,但我认为您确实需要阅读一些有关 C# 的教程,特别是接口的工作原理。
-
我找不到任何可以解释第一个示例的内容。我发现的只是与第二个示例类似的东西。
-
他们没有实例化接口,他们使用实例(像往常一样)但响应给定接口 - 这意味着他们实现了其中定义的方法 - 但实现不在接口中
-
我了解到您在接口之外实现了方法,就像我在第二个示例中所做的那样。我还是不明白第一次发生了什么。