2009-08-12 84 views
1
namespace RepositoryFactory.Interface 
{ 
    public interface ISelectionFactory<TIdentityObject> 
    { 

     DbCommand ConstructSelectCommand(Database db, TIdentityObject idObject); 
    } 
} 


namespace SafetypadDAL 
{ 
    public class T_INCIDENT_SelectFactory:ISelectionFactory<T_INCIDENT> 
    { 
     public DbCommand ConstructSelectCommand(Database db, T_INCIDENT idObject) 
     { 
      //my business codes will be here 

      return command; 
     } 
    } 
} 

这是程序。C#抱怨没有实现接口方法

在这里你不能找到任何错误的签名。

+2

错误信息再清楚不过:“SafetypadDAL.T_INCIDENT_SelectFactory”不实现接口成员“RepositoryFactory.Interface.ISelectionFactory 2009-08-12 09:17:13

+0

换句话说,你可能会认为你实施正确的方法,但你没有。仔细检查以确保您的方法采用正确的参数类型,并且您已正确拼写方法名称。 – 2009-08-12 09:18:28

+0

签名是正确的。 – Partha 2009-08-12 10:01:53

回答

1

你还没有实现它。如果你喜欢,发布代码的相关部分。可能你可以指示你的IDE尝试为你实现,只是为了得到确切的签名。

+0

我编辑了我的问题。请看 – Partha 2009-08-12 10:08:26

4

您可能已经实施了一种名为ConstructSelectCommand的方法,但签名错误,因此它不符合该方法。

如果您使用VS2005或更高版本,请在类声明中单击接口名称,然后按Ctrl和句点(点)。它将提供为您生成方法存根。

如果你真的认为你做得对,请发表你的声明。例如,你确定你已经公开了吗? (当然,或者明确地实现了接口。)

编辑:这两个签名中的Database是否有可能引用不同的类型?如果您尝试了使Visual Studio生成存根的建议,会发生什么情况?

+0

我编辑了我的问题。请参阅 – Partha 2009-08-12 10:09:12

+0

实际上,我仅使用Visual Studio Intelligence生成了签名。 – Partha 2009-08-12 10:18:27

+0

嗯......通常Visual Studio使用类型的全名(包括名称空间)。你自己删除了名称空间吗?如果你将鼠标悬停在“数据库”上,它显示的是什么类型? – 2009-08-12 10:41:21

相关问题