Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 访问已定义的类的方法_C#_C# 4.0 - Fatal编程技术网

C# 访问已定义的类的方法

C# 访问已定义的类的方法,c#,c#-4.0,C#,C# 4.0,这是一个非常愚蠢的问题,但是如何从其他类访问方法呢。我发现由于静态引用问题,我无法在类(如java)之间传递对象。在我的研究中,我找到了一些方法的代表,我认为这些方法可能会对目标C有所帮助,但我要么不理解它们是如何工作的,要么它们与我的问题无关。我也看过ref,但这似乎也没什么帮助,但我对它的理解还是有限的。这是我想做的 class foo { static void Main() { Application.EnableVisualStyles();

这是一个非常愚蠢的问题,但是如何从其他类访问方法呢。我发现由于静态引用问题,我无法在类(如java)之间传递对象。在我的研究中,我找到了一些方法的代表,我认为这些方法可能会对目标C有所帮助,但我要么不理解它们是如何工作的,要么它们与我的问题无关。我也看过ref,但这似乎也没什么帮助,但我对它的理解还是有限的。这是我想做的

class foo
{
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false); 
        Application.Run(new frmMainWindow());
    }

     public void callSomeMethod(Para)
     {
         //call someMethod from foo class - this step is my problem
     }
}

class bar
{
    public static bar()
    {
        //init
    }

    public void someMethod(para1, para2)
    {
        // bar.someMethod calls foo.CallSomeMethod
        callSomeMethod(Para);
    }
}
我知道这是一个基本的问题,但我被卡住了。我花了几个小时在网上摆弄和搜索。我知道我错过了一些基本的东西


谢谢

希望这段代码是自我描述的。这是一个简单的控制台应用程序,虽然不能解决您的确切问题,但您应该能够看到这些类是如何相互作用的,从这里您希望能够精心设计您的问题来解决您的问题

public class Foo
{
    static void Main(string[] args)
    {
        //new instance of Bar
        var bar = new Bar();

        //call method defined on Bar
        bar.SomeMethod("Hey", "There");
    }

    public static void MethodFromFoo(string param1, string param2)
    {
        Console.WriteLine(param1 + ' ' + param2);
        Console.ReadLine();
    }
}

public class Bar
{
    public void SomeMethod(string param1, string param2)
    {
        // call method on Foo -- no need for new instance (static)
        Foo.MethodFromFoo(param1, param2);
    }
}

这是一个经常犯的简单错误

namespace WindowsFormsApplication1
{
class foo
{

    static void Main(string[] args)  // Initial Solution
    {
           Application.EnableVisualStyles();
           " 
               "
    }

     public void callSomeMethod( r )
     {
          //call someMethod from foo class - this step is my problem
     }
}


class bar  
{

      public static bar()
      {
           //init
      }
       public void someMethod(r1 r2)
       {
           Console.WriteLine("r1: {0}",  r2.get());
           Console.ReadKey();   // Similar To Getch(); in C [ Hold The Answer ]
       }
}

让我知道这是否有效?

很抱歉,我的示例不清楚。我想使用bar中的callSomeMethod在foo中调用Somemethod。我会更新我的OP,让它更清晰这是我早期尝试的事情之一,但没有成功。我现在又试了一次,发现了这个错误。“非静态字段、方法或属性‘WindowsFormsApplication1.Program.findFundByName(string)’需要对象引用”我已从程序中删除了所有静态引用,但仍然无法删除错误消息。解决了这个问题后,我必须引用我调用的静态方法,就像您的示例一样。