2010-10-29 112 views
-3

是的,我是C#的新手,但我是一位体面的Java开发人员。好的,我在Visual Studio中有一个program.cs文件和一个Class.cs文件。我所要做的就是打电话给中Program.cs的方法。我有一个令人沮丧的错误。名称'mymethod'在当前上下文中不存在。如果我注释掉方法调用mymethod(parameter);,所有其他代码都可以正常工作,但我无法摆脱该错误。我将不胜感激任何帮助。C#方法调用错误

public class Class 
{ 
    public void myMethod() 
{ 

class Program 
{ 
    static void Main(string[] args) 
{ 
+4

没有人可以帮助你,直到你发布一些代码。请使用您的代码编辑您的回复,并更改您的问题标题以反映您遇到的具体问题。 – Brad 2010-10-29 13:54:21

+1

通常这些被称为构建或编译器错误,而不是bug代码必须运行以产生错误。 – rerun 2010-10-29 13:57:22

+1

对于Java开发人员来说,所有这些答案都是蹩脚的。因为他们只是想象你写的代码。分享您的代码,我们将分享我们的想法。 – 2010-10-29 14:03:35

回答

5

这不行?

public class Class 
{ 
    public void myMethod() 
    { 

    } 
} 

class Program 
{ 
    static void Main(string[] args) 
    { 
     Class c = new Class(); 
     c.myMethod(); 
    } 
} 
+0

对不起,我会从现在开始发布我的代码。答案确实有效,我只需要将所有代码放在一个文件中即可。这就是我在Java中做的。所以我因为使用​​了两个不同的文件而在我的脚踝上“走在公园里”。 (class文件和program/main()文件 – 2010-10-29 15:32:02

+0

@nuclearpro - 请记住,当你在不同的文件中有代码时,这些类可能存在于不同的命名空间中(特别是如果它们也在不同的文件夹中)。检查你的命名空间,然后检查你的保护级别 – 2010-12-11 23:23:41

1

我猜你没有把公共在问题前面的方法。

+0

我不相信这是真的,除非他们对体面的Java开发人员的定义有点缺陷 – ChaosPandion 2010-10-29 13:59:40

+2

@ChaosPandion:虽然你有一个有效的点,我不再为这些日子的事情感到惊讶。 – 2010-10-29 14:03:17

+0

@Moo - +1为*“while”*。 – ChaosPandion 2010-10-29 14:11:44

1

或者,您可能没有将该方法标记为静态?

+0

答案确实有效我只需将所有代码放在一个文件中。这就是我在Java中做的。所以我因为使用​​了两个不同的文件而在我的脚踝上“走在公园里”。 (类文件和程序/ main()文件。好神,我的第一个问题,我越来越p!! – 2010-10-29 15:35:33

0

你可能会调用该方法无需先创建一个对象:

public class MyClass 
{ 
    public void MyMethod() 
    { 
    } 
} 

MyClass.MyMethod(); 

,必须先创建一个实例:

var obj = new MyClass(); 
obj.MyMethod();