c# - 接口(interface)疑惑问题

标签 c# .net class inheritance interface

我们定义接口(interface)如下:

interface IMyInterface
{
    void MethodToImplement();
}

以及如下的暗示:

class InterfaceImplementer : IMyInterface
{
    static void Main()
    {
        InterfaceImplementer iImp = new InterfaceImplementer();
        iImp.MethodToImplement();
    }

    public void MethodToImplement()
    {
        Console.WriteLine("MethodToImplement() called.");
    }
}

为什么我们可以像下面这样直接使用函数而不是创建接口(interface):-)

class InterfaceImplementer
{
    static void Main()
    {
        InterfaceImplementer iImp = new InterfaceImplementer();
        iImp.MethodToImplement();
    }

    public void MethodToImplement()
    {
        Console.WriteLine("MethodToImplement() called.");
    }
}

有什么想法吗?

最佳答案

你没有实现底部示例中的接口(interface),你只是创建一个 InterfaceImplementer 的对象

编辑:在这个例子中不需要接口(interface)。但是,当您尝试编写不必依赖于具体对象的松散耦合代码时,它们非常有用。它们还用于定义契约,其中任何实现它们的东西都必须同时实现它定义的每个方法。

那里有很多信息,这里只是一个简短的介绍http://www.csharp-station.com/Tutorials/Lesson13.aspx

如果您真的想更多地了解接口(interface)以及它们如何帮助编写好的代码,我会推荐《深入浅出设计模式》一书。 Amazon Link

关于c# - 接口(interface)疑惑问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5706987/

相关文章:

c# - 将 DataGrid 绑定(bind)到队列显示为空

c# - 空合并运算符不接受不同类型

c# - 无论我做什么,Mono dllnotfound

javascript - 在全局范围内从类重新分配的方法中实际引用 "this"的是什么?

c# - switch cases .NET 中的代码优化

c# - C# 或 C 的高性能 RSA 实现

c# - 我如何在 C# 中制作参数 `out`?

c++ - 嵌套结构属性继承

python - 将代码 append 到继承的类方法

c# - 使用 ionic zip 时压缩失败