2010-07-17 146 views
4

我不明白这里发生了什么,我从另一个项目中复制了这个代码(编译没有问题),但是一旦我把它带入自己的项目中,我得到了构造函数定义中的编译器错误说该方法需要返回类型。抽象类的构造函数要求返回类型

public abstract class BaseSqlRepository<T, InterfaceT, PrimaryKeyT> 
     where T : class 
     where InterfaceT : class 
{ 
    protected EvalgridEntities DataContext; 
    protected BaseSqlRespository(EvalgridEntities db) 
    { 
     this.DataContext = db; 
    } 
} 

Method must have a return type.

我缺少什么?

+1

Bah,当我复制/粘贴它时,是怎么发生的!? ._。 – 2010-07-17 00:36:39

+1

不知道 - 但这是问题(至少,这是如果这是真正的代码...) – 2010-07-17 00:37:41

+1

你可能粘贴它,并将光标置于某个点的中间,并意外地击中's'在你的键盘上。 – 2010-07-17 00:44:17

回答

6

你拼错了。您的构造函数拼写为BaseSqlRe sp ository。

更改为:

protected BaseSqlRepository(EvalgridEntities db) 
{ 
    this.DataContext = db; 
} 

既然命名是不同的,编译器认为这是一个方法,而不是一个构造函数。由于没有退货类型,因此您收到错误:

Method must have a return type.

4

您有一个错字。你班的名字是BaseSqlRepository(一切拼写正确),但你的构造函数名是BaseSqlRe s pository(中间多余的s)。

1

您的代码中存在拼写错误。这个类的名字是BaseSqlRepository,但是构造函数的名字是BaseSqlRe S pository。