[英]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.