当我试图从另一个类(不是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?
答案 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)
您已经定义了第二个类,它需要一个方法或其中的构造函数才能使其正常工作。将它包装在实例化的周围,它将是可访问的:)