this 在静态类中无效,那么如下的方法如何处理:
public static class Counter
{
    private static int itsVal;
    Counter()
    {
      itsVal=10;
    }
    public static void SetVal(int itsVal)    { 
       this.itsVal=thisVal;  //关键字“this”在静态属性、静态方法或静态字段初始值设定项中无效     }
}

解决方案 »

  1.   

    static class 没有办法用 this。你要做什么?全局计数,不需要this否则不需要 static class参考如下代码:
    static class Counter
    {
        private static int counter = 0;
        public static void Add(int value) { counter += value; }
        public static void Sub(int value) { counter -= value; }
    }
      

  2.   

    我要从外面传递一个值给itsVal且参数也是itsVal如何解决呢?
      

  3.   

    C#3.0新引入的扩展方法,可以支持在static方法内使用this
      

  4.   

    参数名无所谓的。这是形参而已。foo(int i) 和 foo(int x) 对调用是一样。你不要拘泥于语法的问题,说说你想做什么。
      

  5.   

    这么做没有意义。
    静态类中的成员,都是通过 类名.成员名 访问的。
    不能产生类的实例对象,自然也没有什么 this 了。
    不要钻牛角尖。
      

  6.   

      public static class Counter
        {
            private static int itsVal;
           static Counter()
            {
                itsVal = 10;
            }
            public static void SetVal(int itsVal)
            {
                Counter.itsVal = itsVal; //关键字“this”在静态属性、静态方法或静态字段初始值设定项中无效
                
            }      
        }调用的时候  就是 Counter.SetVal(100);这样啦
    把this.itsVal=thisVal;
    换成
    Counter.itsVal = itsVal; 用类直接调用啦
    还要 static Counter()
    必须用静态构造函数,因为你的类public static class Counter
    是static