2013-04-03 46 views
-2

我在一個類中的下列類型的方法在我的堆棧存在在newDate參數中獲取日期時間計算的結果。C#的錯誤不會在目前情況下

在項目中的新類,我調用它像這樣:

Public void methodName(param,param) 
{ foreach loop(param) 
    {If item != null) 
    DateTime newDate = item.Date.value; 
     { 
     item.item.date = CalculateNewDate(newDate); 
     } 
    } 
} 

我有一個選項,讓「名‘CalculateNewDate’並不在當前的背景下存在」錯誤信息生成方法存根。

我確實有正確的名稱空間使用。任何想法,爲什麼我不能從我的其他班級調用這種方法?

抱歉,由於我們公開發布的內容受到限制,我不能具體說明這一點。

+1

你正試圖在另一個類中調用一個方法,就像它是一個靜態方法,但它不是。您必須創建該類的一個實例並以此方式調用該方法。 –

+0

也許你也可以發佈沒有語法錯誤的示例代碼 –

回答

5

C#是一種面向對象的語言,主要構建模塊是類。
您不能調用在類中定義的方法而不創建該類的實例。
(除非你聲明的方法靜態的,但這不是真的在這裏的事情)

因此,假設,如果你想使用你需要一個類的實例方法,你有這個類

public class AClassOfMine 
{ 
    public DateTime CalculateNewDate(DateTime newDate) 
    { 
     //datetimecalculations 
     return calculatedDate; 
    } 
} 

public void methodName(param,param) 
{ 
    foreach loop(param) 
    { 
     If (item != null) 
     { 
      DateTime newDate = item.Date.value; 
      AClassOfMine anInstance = new AClassOfMine(); 
      item.item.date = anInstance.CalculateNewDate(newDate); 
     } 
    } 
} 

當然的方法CalculateNewDate應該返回所以你的方法簽名應相應地更改新日期。 (返回日期)

+0

謝謝,我其實有一個可用類的實例,我沒有明確地聲明它。 – numlaar

+0

我不明白你的意思。你有和**實例**可用,但你還沒有宣佈它?你能顯示相關的代碼嗎? – Steve

+0

classname.methodname(param)。如上所示,我忘了在呼叫中輸入類名。一旦我添加它,問題就解決了。謝謝 – numlaar

相關問題