为什么全局类中声明的变量在同一个类方法中不可见/可访问?

时间:2013-09-19 04:37:09

标签: c#

我在visual studio 2010中的应用程序代码文件夹中创建了一个类。当我在方法之外声明任何变量(全局)时,它在该方法中不可见。我是asp.net的新手,可能是我犯了任何错误,但我无法理解。所以我需要一些帮助。我的代码如下......

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

public class Class2
{

public Class2()

    {
    //
    // TODO: Add constructor logic here
    //
    }

int i;

public static void calculate(string)
{
    // here want that variable but i can't get it in intelliscence.  
}
}

4 个答案:

答案 0 :(得分:4)

该方法为static

您无法从static方法访问实例成员。这没有意义。

static视为“对每个可能的类实例都是全局的”。您的int i变量意味着“全局...到类的单个实例”。当你这样想的时候,你无法从“全局到每个实例”的方法访问“全局到单个实例”的变量。

希望这有道理吗? (可能需要重新措辞..我只是想让它更容易理解)

答案 1 :(得分:0)

static方法只能访问静态成员。

静态方法无法访问非静态类级别成员。实例方法可以访问静态成员,但必须通过实例化对象调用。

答案 2 :(得分:0)

静态方法无法访问非静态成员。要使用非静态成员,请创建该类的对象,然后使用get / set方法。

答案 3 :(得分:0)

静态方法只能访问静态数据成员。您应该使用静态变量来处理静态方法。