2011-12-14 187 views
1

我创造了我的课了下面的构造函数:C#构造函数重载

public class AccountService : IAccountService 
{ 

    public AccountService(Meta meta) 
    { 
     Initialize(meta.DataSourceID); 
    } 

    public AccountService(string dataSourceID) 
    { 
     Initialize(dataSourceID); 
    } 

然而,当我调用类:

_accountService = new AccountService(vm.Meta); 

我得到以下信息:

错误16 'AccountService.AccountService(string)'的最佳重载方法匹配有一些无效的 参数

有没有什么基本的东西我在这里失踪?当intellisense编码给我两个选项和 当我使用intellisense选择vm.Meta时没有语法错误?我需要在 接口中声明构造函数吗?

+7

什么是vm.Meta的类型。如果vm是Meta的一个实例,则通过** vm **而不是vm.Meta。 – adatapost 2011-12-14 02:55:13

回答

2

我需要在接口中声明构造函数吗?

不可以。您不能在接口中decalre构造函数。接口表示您的类型的公共API的声明;他们不以任何方式指定实现类是如何创建

你的代码是正确的,在概念上至少;问题可能是vm.Meta不是Meta类型,或者是从Meta继承的类型。