C# 4.0 调用其中类的方法
//这种情况背后的技术原因是什么?您试图直接在类中而不是在方法中使用声明以外的语句。您希望什么时候调用该方法C# 4.0 调用其中类的方法,c#-4.0,C# 4.0,//这种情况背后的技术原因是什么?您试图直接在类中而不是在方法中使用声明以外的语句。您希望什么时候调用该方法 基本上,一个类型中可以直接包含的只是一组声明—方法、变量、构造函数、事件、嵌套类型等。不属于声明一部分的方法调用(或任何其他语句)必须在方法、构造函数等中编写。您有一些问题。。。当您试图在类定义中调用方法obj.m1()时,这甚至不会编译 A obj = new A(); obj.m1(); // Why this code wont work??? --> This must
基本上,一个类型中可以直接包含的只是一组声明—方法、变量、构造函数、事件、嵌套类型等。不属于声明一部分的方法调用(或任何其他语句)必须在方法、构造函数等中编写。您有一些问题。。。当您试图在类定义中调用方法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.
}
方法调用不能是类的一部分,而只能在声明范围内,例如方法、属性、构造函数等
例如:
public class ExampleClass
{
private void SayHelloWorld()
{
Console.Writeline("Hello World!");
}
public void CallSayHelloWorldMethod()
{
this.SayHelloWorld();
}
}
在上面的示例中,您可以看到我在CallSayHelloWorldMethod
metod中调用了SayHelloWorld
方法
更新:
在您的案例中,我能想到的最接近的事情是使用类
,在该类中,您的方法调用将在实例化类后立即执行:
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();
回答一个问题:当方法被写入类中时,应该在什么时候执行?如果你不介意的话,你能确切地告诉我他们没有实现那个功能(方法调用语句作为类的一部分)。我指的是背后的逻辑。因为我通过理解编程的最深处来学习编程。所以我也不想知道这背后的原因。。。我相信这背后会有一个合乎逻辑的解释。@prasobkumarkp如果你的方法调用只是类定义级别的一部分,你希望什么时候执行它?我可以假设您希望在实例化类时立即执行它,为此,您应该在类的构造函数中调用它,该构造函数在使用类(对象)时立即执行。在答案中查看我的更新。