2014-05-21 24 views
0

錯誤:方法destroyAfterCBEvent' takes 0' 參數無重載方法`destroyAfterCBEvent」拍攝'0' 參數

什麼是上述問題的解決方案>否過載???

Chartboost.CBManager.didFailToLoadInterstitialEvent += destroyAfterCBEvent(); 

void destroyAfterCBEvent (string location) 
{ 
    Debug.LogError ("CB Event failed, noads button destroyed"); 
    Destroy (gameObject); 
} 

這些是使用的代碼和生成的錯誤..

回答

0

調用destroyAfterCBEvent,當你真正想用的方法組轉換爲創建一個委託訂閱事件。您需要關閉括號(這是使它成爲方法調用的原因)。你想:

Chartboost.CBManager.didFailToLoadInterstitialEvent += destroyAfterCBEvent; 

這相當於:

Chartboost.CBManager.didFailToLoadInterstitialEvent += 
    new Action<string>(destroyAfterCBEvent); 

或根據您的意見:(後者令我吃驚,鑑於Chartboost documentation

Chartboost.CBManager.didFailToLoadInterstitialEvent += 
    new GUIClickEventReceiver(destroyAfterCBEvent); 

由於除此之外,將代碼更改爲遵循正常的.NET命名約定(事件)將是一個好主意和方法都應該是PascalCased。事件通常應該有一個與EventHandler兼容的代表。 (我對ChartBoost一無所知,所以有些問題可能與您無關......但方法名稱絕對是您可以解決的問題。)

+0

那麼我應該怎麼做.. as我是新來的C#,你能準確地建議我該怎麼做.. @ Jon Skeet ..我正在爲Unity3D項目編程 –

+0

@devean_purohit:我已經向你展示了你應該怎麼做來解決這個問題 - 看看我提供的代碼行。 –

+0

它添加你的代碼時產生一個新的錯誤 'GUIClickEventReceiver'類型不包含一個構造函數,它接受'1'參數 這裏GUIClickEventReceiver是WhateverTheEventTypeIs ... –