前にクラスメンバーとして実装されたインターフェイスは見ていませんでした。誰かが何が起こっているのか説明できますか?インターフェイスをインスタンス化することは許可されていますか?これらのインタフェースで必要とされるメソッドの実装はどこですか?このインターフェイスがこのようにクラス内で実装されているのはなぜですか?
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#の上のいくつかのチュートリアルを通過し、実行する必要があると思います。 – DavidG
最初の例を説明するものは何も見つかりませんでした。私が見つけたのは、2番目の例と同様のものです。 – eek142
インタフェースをインスタンス化しておらず、インスタンスを使用しています(通常どおり)が、指定されたインタフェースに応答します。つまり、定義されたメソッドを実装していますが、実装はインタフェースにありません –