C# 中变量的有效范围

方法内变量:有效范围 在方法内两个大括号之间有效

public void A()

{

    {

             int x=0;//这个X和下边的X变量不会冲突,因为变量的有效范围是两个大括号以内

             Console.WriteLine(x);

     }

     {

             int x=1;

             Console.WriteLine(x);

     }

}

类成员变量:

              1.实例成员变量

              2.静态成员变量

              3.线程静态成员变量

实例成员变量:在类的对象内有效,访问相同的变量,同一个类不同的实例访问不同的变量

  class A

{

     public int x;

}

A a=new A();

A b=new A();

a.x和b.x属于不同的变量

静态成员变量:静态成员变量不是针对整个进程静态,而是针对一个应用程序域来说时静态的维护同一个知不同的域拥有不同的变量   代码不写了比较多

线程静态成员变量:针对应用程序与域内一个线程的静态变量,这样的变量可以在访问的时候保证同一个线程内使用一样的值,其他线程维护另外的值.

  class A

{

     [ThreadStatic]

     public static int x;

}

A.x在不同的线程可以维护不同的值,再.Net中这样的应用是非常多的.不如HttpContext.Current  就是使用线程静态成员变量来保存当前HttpContext,因为在Web中一个请求是在一个线程中执行完成.所以在线程的任何代码位置不需要传递HttpContext 就可以获取到.

原文地址:https://www.cnblogs.com/a185771876/p/2190257.html