C# 为什么可以';我打电话给';公共空间';来自同一个班级?
我对方法结构的理解仅限于非常有限的结构谱:C# 为什么可以';我打电话给';公共空间';来自同一个班级?,c#,methods,C#,Methods,我对方法结构的理解仅限于非常有限的结构谱: public / private static void / variable returns string, int etc. 那么为什么我不能在同一个类中调用一个方法呢 class ClassName { public void Method1() { // do stuff... } public static void Method2() { // This won't
public / private
static
void / variable returns
string, int etc.
那么为什么我不能在同一个类中调用一个方法呢
class ClassName
{
public void Method1()
{
// do stuff...
}
public static void Method2()
{
// This won't work?
Method1();
// do stuff...
}
}
不能从静态方法调用非静态的方法 Static=属于该类 否则它属于类的实例
有关的详细信息,请参阅MSDN参考。不能从静态方法调用非静态的方法 Static=属于该类 否则它属于类的实例
有关的详细信息,请参阅MSDN参考。您不能从静态方法调用非静态方法。 如果您真的想通过使用静态方法来实现这一点,则需要实例化该类,例如:
class myClass
{
public void Method1(){
//Stuffs
}
public static void Method2(){
myClass c=new myClass();
c.Method1();
}
}
不能从静态方法调用非静态方法。 如果您真的想通过使用静态方法来实现这一点,则需要实例化该类,例如:
class myClass
{
public void Method1(){
//Stuffs
}
public static void Method2(){
myClass c=new myClass();
c.Method1();
}
}
不能从静态上下文调用非静态元素。您必须在静态方法中创建类的实例,并从该实例调用非静态方法。可以在没有实例的情况下调用静态方法。不能从静态上下文调用非静态元素。您必须在静态方法中创建类的实例,并从该实例调用非静态方法。静态方法可以在没有实例的情况下调用。您不能从
静态
上下文调用非静态
方法,因为可能根本没有该类的实例来调用非静态
方法<代码>静态方法不需要在调用它之前创建实例。旁注:如果您在Visual Studio中单击错误消息并按F1键,您可以获得一篇文章,描述每个特定错误的最常见情况。您不能从静态
上下文调用非静态
方法,因为可能存在以下情况:不是调用非静态方法的类的实例<代码>静态方法不需要在调用它之前创建实例。旁注:如果在Visual Studio中单击错误消息并按F1键,您可以获得一篇文章,描述每个特定错误的最常见情况。那么,以这种方式实例化类会做什么呢?正如其他人所指出的,非静态方法需要实例化类(例如,因为它可能需要初始化将在costructor中分配的某些类属性),因此即使您必须动态执行操作,也需要实例化类。如果您需要在不实例化的情况下调用一个方法,并且不需要引用类的任何属性,那么也可以将该方法设置为静态。那么,以这种方式实例化该类将做什么呢?正如其他人所指出的,非静态方法需要实例化该类(例如,因为它可能需要初始化将在构造函数中指定的某些类属性),因此,即使您必须动态执行一个操作,您也需要实例化该类。如果您需要调用一个方法而不实例化它,并且不需要引用该类的任何属性,那么也要将该方法设置为静态。