2009-09-21 84 views
5

我收到以下錯誤:C#錯誤「,沒有超載的方法‘的getData’採取‘1’參數

Error 49 No overload for method 'getData' takes '1' arguments 

隨着5日線這個方法。

[WebMethod] 
    public string getVerzekerde(int bsn) 
    { 
     ZDFKoppeling koppeling = new ZDFKoppeling(); 
     return koppeling.getData(bsn);    
    } 

GetData方法是這樣的:

public string getData(int bsn) 
    {   
     using (new SessionScope()) 
     { 
      ZorgVerzekerde verzekerde = PolisModule.GetVerzekerde(bsn); 
      return "Verzekerde " + verzekerde.Naam;   
     }  
    } 

我真的不明白是怎麼回事錯..這個錯誤對MSDN網站的描述並沒有幫助我.. http://msdn.microsoft.com/en-us/library/d9s6x486%28VS.80%29.aspx

有人有解決方案嗎?

+0

ZDFKoppeling:這是一個內部類,對吧?我們怎麼知道它是如何定義的? – 2009-09-21 10:34:22

回答

10

是的;不知何故,你正在編譯該類的不同版本。做一個乾淨的構建,並仔細檢查你的參考。

+2

清潔確實有幫助...現在感覺有點愚蠢:P – Rick 2009-09-21 11:12:35

+0

@Rick,99%的問題出現在我們的代碼中,所以當我們的代碼不是時,我們傾向於不嘗試明顯的 – 2009-09-21 11:19:51

+2

@Ian - 我個人的觀點是,如果你必須做一個乾淨的構建才能使事情發揮作用,那麼這是該工具的失敗。不幸的是,我最近在VS2008和WPF中不得不這樣做 – 2009-09-21 12:39:36

0

getData方法在哪裏定義?它在另一個程序集中嗎?你嘗試過重建嗎?

它看起來不像你的代碼有什麼問題。

1

在GetData()方法中發生錯誤,然後執行完整構建並確認編譯器找到錯誤。如果您的計算機上有多個源代碼副本,那麼您可能正在編輯錯誤的文件,並且這會顯示您是否在使用。

也嘗試重命名ZDFKoppeling類而不更新getVerzekerde()並檢查您是否得到編譯器錯誤。如果不是,你由於某種原因沒有選擇更換的班級。

如果上面沒有給出編譯器錯誤,請嘗試重新預訂,作爲一個進程,我有DLL鎖定,並嘗試一個完整的重建。

一旦您追蹤到這些問題,通常會變得非常簡單。但要永遠追蹤。

如果另一個程序員在同一個辦公室工作,問他/她的幫助,因爲往往是第二組眼的機器上可以很快找到它。

(我假設的GetData()在ZDFKoppeling類,而不是其他一些CALSS定義)

1

這通常表明它不引用你以爲是方法,而是一個不同。您通常可以通過右鍵單擊方法調用並選擇「轉到定義」來找出Visual Studio中的方法。這應該有助於解決它爲什麼要調用它而不是你期望的那個。

相關問題