学习有效地使用接口

Hos*_*146 44 c#

我一直在使用C#开发软件,但是我没有充分利用的一个主要领域是接口.事实上,我经常对它们可以使用的各种方式以及何时使用它们感到困惑.例如,我知道方法可以返回接口,可以将它们作为参数,可以从它们派生等等.这个概念对我来说是一个明确的弱点

我想知道是否有人知道一个源/教程明确彻底地解释了接口的深度和可以使用的各种方式?

dkn*_*ack 58

描述

C#中的接口提供了一种实现运行时多态性的方法.使用接口我们可以通过相同的接口引用调用来自不同类的函数,而使用虚函数我们可以通过相同的引用调用同一继承层次结构中不同类的函数.

例如:

public class FileLog : ILog
{
    public void Log(string text)
    {
        // write text to a file
    }
}

public class DatabaseLog : ILog
{
    public void Log(string text)
    {
        // write text to the database
    }
}

public interface ILog
{
    void Log(string text);
}

public class SomeOtherClass
{
    private ILog _logger;

    public SomeOtherClass(ILog logger)
    {
        // I don't know if logger is the FileLog or DatabaseLog
        // but I don't need to know either as long as its implementing ILog
        this._logger = logger;
        logger.Log("Hello World!");
    }    
}
Run Code Online (Sandbox Code Playgroud)

你问过教程.

教程


Tud*_*dor 5

接口通常用于强制实现类遵守某个合同(意味着具有某些方法).有时它们只是用作标记,即它们没有声明方法,但允许一些代码生成器为实现类生成特殊代码.

话虽如此,接口本身并不是一个"工具",因此它们不能满足特定的功能需求,但它们可以大大简化应用程序的设计,并广泛用于OO设计模式.本教程的基本资源是:http://www.csharp-station.com/Tutorial/CSharp/Lesson13