Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么可以';我打电话给';公共空间';来自同一个班级?_C#_Methods - Fatal编程技术网

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中分配的某些类属性),因此即使您必须动态执行操作,也需要实例化类。如果您需要在不实例化的情况下调用一个方法,并且不需要引用类的任何属性,那么也可以将该方法设置为静态。那么,以这种方式实例化该类将做什么呢?正如其他人所指出的,非静态方法需要实例化该类(例如,因为它可能需要初始化将在构造函数中指定的某些类属性),因此,即使您必须动态执行一个操作,您也需要实例化该类。如果您需要调用一个方法而不实例化它,并且不需要引用该类的任何属性,那么也要将该方法设置为静态。