Fre*_*ddy 6 c# static console-application
我正在尝试使用控制台应用程序从另一个类调用方法.我尝试调用的类不是静态的.
class Program
{
static void Main(string[] args)
{
Program p = new Program();
var myString = p.NonStaticMethod();
}
public string NonStaticMethod()
{
return MyNewClass.MyStringMethod(); //Cannot call non static method
}
}
class MyNewClass
{
public string MyStringMethod()
{
return "method called";
}
}
Run Code Online (Sandbox Code Playgroud)
我收到错误:
无法在静态上下文中访问非静态方法"MyStringMethod".
如果我将MyStringMethod移动到类程序,这是有效的.我怎么能成功呢?我不能使类静态也不能使方法.
Mar*_*rkO 11
就像您创建一个Program类的实例来调用NonStaticMethod一样,您必须创建一个MyNewClass的实例:
public string NonStaticMethod()
{
var instance = new MyNewClass();
return instance.MyStringMethod(); //Can call non static method
}
Run Code Online (Sandbox Code Playgroud)
小智 5
非静态类需要一个实例来访问其成员。
在静态Main方法内创建实例,并调用非静态类成员:
static void Main(string[] args)
{
MyNewClass p = new MyNewClass();
var myString = p.MyStringMethod();
}
Run Code Online (Sandbox Code Playgroud)