c# - Main() 不想访问类变量

标签 c# class variables scope methods

为什么我可以从“method()”而不是 Main() 方法访问 X 变量?

    class Program
    {
        int X;  // this is the variable I want access

        static void Main(string[] args)
        {
            int a;
            a = X; // this doesnt work, but why?
        }
        void metodo()
        {
            int b;
            b = X; //this works, but why?
        }
    }

最佳答案

尝试

static int X

X 是一个实例变量,这意味着您的类的每个实例都将有自己的 X 版本。然而,Main 是一个静态方法,这意味着 Program 类的所有实例只有一个 Main,因此访问 X 没有任何意义,因为可能有多个 X,或者可能根本没有,如果没有 Program 实例被创建的话。

将 X 本身设为静态,意味着所有 Program 实例将共享 X,因此共享方法将能够访问它。

关于c# - Main() 不想访问类变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3304032/

相关文章:

Java 类继承和阻塞父类(super class)方法

linux - 带有 $ 的 BASH 脚本未正确保存

c# - 排除开头但包含结尾

空条件运算符和等待的 C# 错误

C# 将字符串拆分为标记的更直观方法?

c++ - 不能有关系

swift - 如何在类中打印函数

variables - 创建动态命名变量

python - 即使 DAG 未运行, Airflow 变量也会更新

c# - 在 parallel.ForEach 循环中获取线程 ID