ms-help://MS.VSCC/MS.MSDNVS.2052/csref/html/vclrfpassingarraysusingrefoutpg.htm

解决方案 »

  1.   

    private int SearchBy2(string[] strAry)
    -》
    private static int SearchBy2(string[] strAry)
      

  2.   

    同意楼上的!C#中,很多都是这样大规则,可以在以后注意一下,访问权限都是传递的。比如象这个问题,如果本身是静态的就必须调用静态方法。Good Luck!
      

  3.   

    但你发现这将陷入一个死循环。因为Main函数肯定是静态的,那么岂不是所有的方法都要声明成静态的?显然不是!C#提供了一个访问非静态方法的途径。那就是创建一个改方法所在类的实例,然后调用。如下:
    MyClass anInstanceofMyClass = new MyClass();
    anInstanceofMyClass.TestCall();看一下C#中带有Form窗体的应用程序模板就知道了:) static void Main() 
    {
    Application.Run(new Form1());
    }我们可能没有注意到Application在C#中,是提供静态方法的集合,以管理应用程序。好了,这样下去,我们就可以放心定义自己的方法了:)Good Luck!
      

  4.   

    建议把参数改为params类型的,因为用你用string〔〕传递是值调用。用数组传会省掉不少开销的。这个是c#和c++里边不同中的一点。