繁体   English   中英

未实现接口成员-C#

[英]Not implementing interface member - C#

我不断收到此错误,并且不确定自己在做什么错。 错误1'Home.Services.InventoryImpl'未实现接口成员'Home.Services.InventorySvc.CreateInventory(Home.Services.InventoryImpl)'

我的界面代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Home;
using Home.Domain;

namespace Home.Services
{
    public interface InventorySvc
    {
        void CreateInventory(InventoryImpl CreateTheInventory);
    }
}

我的实施代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Home.Domain;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;

namespace Home.Services
{
    public class InventoryImpl: InventorySvc
    {
        public void CreateTheInventory(CreateInventory createinventory)
        {

            FileStream fileStream = new FileStream
            ("CreateInventory.bin", FileMode.Create, 
            FileAccess.Write);
            IFormatter formatter = new BinaryFormatter();
            formatter.Serialize(fileStream, createinventory);
            fileStream.Close();
        }
    }
}

您的方法称为CreateTheInventory但在界面中称为CreateInventory 方法签名必须与接口成员完全匹配,以便编译器将该方法视为实现接口成员,并且名称不匹配。

此外,参数类型不匹配-在您的实现中,您将CreateInventory作为参数类型,但是接口采用了InventoryImpl类型的参数。

如果您纠正了这两个错误,则应该构建代码。

您的InventorySvc界面定义:

void CreateInventory(InventoryImpl CreateTheInventory);

但是您已经实现了:

public void CreateTheInventory(CreateInventory createinventory)

看到不同?

您在类中的方法签名与接口方法的签名不匹配。

使用将鼠标悬停在接口名称上时出现的智能标记,以创建接口实现。 这使一切都适合您。

另外,您应该调用接口IInventorySvc 接口名称的准则指出,即使逻辑名称以“ I”开头,也应在逻辑名称之前放置一个大写的“ I”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM