2010-07-17 147 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。