从C#中的另一个类调用类中的方法

时间:2015-04-04 15:24:57

标签: c# methods call

当我试图从另一个类(不是Main类)调用方法时,我遇到了一个小问题。这是我的测试代码:

using System;

namespace ConsoleApplication3
{
    public class Program
    {
        static void Main(string[] args)
        {
            Class1 cl = new Class1();
            cl.TestMethod();
        }
    }

    public class Class1
    {
        public string TestMethod()
        {
            return "test";
        }
    }

    public class Class2
    {
        Class1 cl = new Class1();
        cl.TestMethod(); //Error here
    }
}

如何在Class2中调用TestMethod?

4 个答案:

答案 0 :(得分:2)

您无法从方法,构造函数或属性外部调用方法 将第二课改为:

public class Class2
{
    public Class2
    {
       Class1 cl = new Class1();
       cl.TestMethod(); //Error here
    }}

答案 1 :(得分:1)

您无法将方法调用到类体中。指定方法,或者,例如,将代码放入Class2构造函数中,如下所示:

using System;

namespace ConsoleApplication3
{
    public class Program
    {
        static void Main(string[] args)
        {
            Class1 cl = new Class1();
            cl.TestMethod();
        }
    }

    public class Class1
    {
        public string TestMethod()
        {
            return "test";
        }
    }

    public class Class2
    {
        Class1 cl = new Class1();

        public Class2()
        {
            cl.TestMethod();
        }
    }
}

答案 2 :(得分:0)

我认为你的课程与方法相混淆。

方法是一个子程序,一些代码可以从代码的其他部分调用并按顺序运行。

类是数据类型。您可以创建类的特定实例,然后访问其属性或调用其方法。

所以Main是一个方法,而不是一个类。具体来说,它是程序类的一种方法。

在类中,所有可执行代码都必须在方法内。此规则的一个(某种)例外是您可以初始化方法之外的成员。这就是你对c1 = new Class1()所做的。使用new。

创建类时,将隐式执行这些语句

要调用class1方法,您必须在class2上声明一个方法来执行它。或者定义一个构造函数来构造它。然而,拥有一个做很多工作的构造函数是非常糟糕的做法。构造应该只执行初始化类才能运行所需的成员。

答案 3 :(得分:0)

您已经定义了第二个类,它需要一个方法或其中的构造函数才能使其正常工作。将它包装在实例化的周围,它将是可访问的:)