//这种情况背后的技术原因是什么??
答案 0 :(得分:1)
您尝试在类中直接使用声明以外的语句 - 而不是在方法中。你什么时候期望这个方法被调用?
基本上所有你可以在一个类型中直接拥有一堆声明 - 方法,变量,构造函数,事件,嵌套类型等。方法调用(或任何其他语句)不属于声明必须在方法,构造函数等中编写。
答案 1 :(得分:0)
你有一些问题......当你试图在类定义中调用方法obj.m1()时,这甚至都不会编译。
A obj = new A();
obj.m1(); // Why this code wont work??? --> This must be inside a method
当你创建一个类的实例时,它将创建一个名为obj的新成员变量,它是A - >的一个实例。上面的obj = newA();
您现在可以像第二个示例中那样调用obj的方法。
此外,为了使其编译,您需要修复m2方法:
public void m2() { //--> should have a curly brace
obj.m1(); // But This will work.
}
答案 2 :(得分:0)
方法调用statement 无法成为class
declaration的一部分,但只有 Function members声明中的范围,例如方法,属性,构造函数等。
例如:
public class ExampleClass
{
private void SayHelloWorld()
{
Console.Writeline("Hello World!");
}
public void CallSayHelloWorldMethod()
{
this.SayHelloWorld();
}
}
在上面的示例中,您可以看到我在SayHelloWorld
metod中调用CallSayHelloWorldMethod
方法。
<强>更新强>
在您的情况下,我能想到的最接近的事情是使用class
的{{3}},只要您实例化您的类,就会执行您的方法调用:
public class ExampleClass
{
//The class constructor
public ExampleClass()
{
this.SayHelloWorld();
}
private void SayHelloWorld()
{
Console.Writeline("Hello World!");
}
}
当你实例化它时,会立即调用它:
//Your method call will be executed here
ExampleClass exampleClass = new ExampleClass();