Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 接口在类之间进行通信_C#_Oop_Interface - Fatal编程技术网

C# 接口在类之间进行通信

C# 接口在类之间进行通信,c#,oop,interface,C#,Oop,Interface,说接口在两个类之间进行通信是正确的吗?好像它能把信息从B类传送到C类?两个类都继承相同的接口 我读过这个例子 让我们以你的“手”为例。“手”是一个类。你的身体有两个“手”类型的物体,分别称为“左手”和“右手”。它们的主要功能由通过肩膀(通过接口)发送的一组电信号控制或管理。因此,肩部是身体与手互动的界面。hand是一个结构良好的类。通过稍微更改手的属性,可以重用手来创建左手和右手 这只指定接口控制或管理类,我同意这一点,但不知何故我知道接口可以将数据从一个类传输到另一个类,所以如果我们这样定义接

说接口在两个类之间进行通信是正确的吗?好像它能把信息从B类传送到C类?两个类都继承相同的接口

我读过这个例子

让我们以你的“手”为例。“手”是一个类。你的身体有两个“手”类型的物体,分别称为“左手”和“右手”。它们的主要功能由通过肩膀(通过接口)发送的一组电信号控制或管理。因此,肩部是身体与手互动的界面。hand是一个结构良好的类。通过稍微更改手的属性,可以重用手来创建左手和右手

这只指定接口控制或管理类,我同意这一点,但不知何故我知道接口可以将数据从一个类传输到另一个类,所以如果我们这样定义接口,或者说我们使用接口来实现此目的,这是正确的吗

接口在两个类之间创建通信,例如在ClassA和ClassB中继承的接口Iabc,然后它可以将ClassA的信息发送给ClassB

说接口在两个类之间进行通信是正确的吗

我不会这样定义接口。我会将界面视为具有约束力的合同。合同规定:“任何实现此接口的人都必须能够执行合同定义的任何操作。”

例如:

public interface IHand
{
    void Shake(IHand otherHand);
}

public class Hand : IHand
{
    public void Shake(IHand otherHand)
    {
        Console.WriteLine("Shook the other hand");
    }
}
IHand
是一个接口,它声明了一个名为
Shake
的方法,该方法接收
IHand
的另一个对象。实现我们接口的任何类都必须提供一个名为
Shake
的方法,该方法可以执行某些操作

在这个特定的示例中,我们的
Hand
类在每次与另一只手握手时都会向控制台写入数据

通过接口,我们可以创建抽象。也就是说,我们可以只依赖于合同,而不依赖于具体的类(例如
)。这意味着,任何实现
IHand
的对象对我们来说都很好,因为可以保证他将拥有一个
Shake
方法,我们可以调用该方法。在
Shake
方法中发生的事情超出了我们的理解范围,我们通常并不在意

public interface IHand
{
    void Shake(IHand otherHand);
}

public class Hand : IHand
{
    public void Shake(IHand otherHand)
    {
        Console.WriteLine("Shook the other hand");
    }
}