2013-04-03 53 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

相关问题