Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.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# - Fatal编程技术网

C# 如何创建接口实例(访问接口)

C# 如何创建接口实例(访问接口),c#,C#,我有这样一个界面: namespace QuickRoutes.Model.Utilities { public interface IRoutesManager { bool ImportRoute(Stream inputStream, string fileName); List<Route> GetAllRoutes(); List<Route> GetAllRoutesForDate(DateTim

我有这样一个界面:

namespace QuickRoutes.Model.Utilities
{
    public interface IRoutesManager
    {
        bool ImportRoute(Stream inputStream, string fileName);
        List<Route> GetAllRoutes();
        List<Route> GetAllRoutesForDate(DateTime from, DateTime to);
        void DeleteRoute(string routeName);
        void DeleteAllRoutes();

    }
}
我想从我的表单中访问I.e ImportRoute函数,但我无法访问此函数,出现如下错误: 无法创建抽象类或接口的实例 如何访问这些功能?

您需要一个定义实际行为的接口实现。接口本身只声明成员——正如您所看到的,没有代码来说明要做什么

您的表单可以创建某个实现的实例,也可以将其作为IRoutesManager提供,这样表单本身就不需要关心它使用的是哪个实现。

您需要一个定义实际行为的接口实现。接口本身只声明成员——正如您所看到的,没有代码来说明要做什么


您的表单可以创建某个实现的实例,也可以将其作为IRoutesManager提供,这样表单本身就不需要关心它使用的是哪个实现。

您从不创建接口的实例,接口只是契约。你要做的是:-

public class MyRouteManager : IRoutesManager
{ 
    bool ImportRoute(Stream inputStream, string fileName)
    { code here etc etc } 
    List<Route> GetAllRoutes();
    List<Route> GetAllRoutesForDate(DateTime from, DateTime to);
    void DeleteRoute(string routeName);
    void DeleteAllRoutes();

}

如果它是一个类,您还可以将单词interface改为class

您从不创建接口实例,接口只是契约。你要做的是:-

public class MyRouteManager : IRoutesManager
{ 
    bool ImportRoute(Stream inputStream, string fileName)
    { code here etc etc } 
    List<Route> GetAllRoutes();
    List<Route> GetAllRoutesForDate(DateTime from, DateTime to);
    void DeleteRoute(string routeName);
    void DeleteAllRoutes();

}

如果它是一个类,您还可以将单词interface改为class

我认为你需要学习OOPS概念。我认为你需要学习OOPS概念。