public class myClass 
{ 
  string c_Treeid; //这里错了,不是个静态变量
  
  public static string C_Treeid 
  { 
    get {return c_Treeid;} 
    set {c_Treeid=value; } 
  } 
} 
改成:
public class myClass 
{ 
  string static  c_Treeid; //这里错了,不是个静态变量
  
  public static string C_Treeid 
  { 
    get {return c_Treeid;} 
    set {c_Treeid=value; } 
  } 
} 

解决方案 »

  1.   


    根据你的方法写了,出错了,提示为:
     CS1585: 成员修饰符“static”必须位于成员类型和名称之前
      

  2.   


    public class myClass 

      string c_Treeid; 
      
      public string C_Treeid 
      { 
        get {return c_Treeid;} 
        set {c_Treeid=value; } 
      } 
    }
    将静态去掉就行了!!
     
      

  3.   


     public class myClass
            {
                static string c_Treeid;
                public myClass()
                {
                    c_Treeid = "AAa";
                }            public string C_Treeid
                {
                    get { return c_Treeid; }
                    set { c_Treeid = value; }
                }
            }        static void Main(string[] args)
            {
               myClass my = new myClass();
                string mystring = my.C_Treeid;
                Console.WriteLine(mystring);
    }
      

  4.   

    完全同意楼上看法。
    C#静态方法
     
     
     
    学习C#静态函数及变量的一个精典例子与代码(1)用于对静态字段、只读字段等的初始化。               (2)添加static关键字,不能添加访问修饰符,因为静态构造函数都是私有的。       (3)类的静态构造函数在给定应用程序域中至多执行一次:只有创建类的实例或者引用类的任何静态成员才激发静态构造函数 (4)静态构造函数是不可继承的,而且不能被直接调用。             (5)如果类中包含用来开始执行的 Main 方法,则该类的静态构造函数将在调用 Main 方法之前执行。任何带有初始值设定项的静态字段,则在执行该类的静态构造函数时,先要按照文本顺序执行那些初始值设定项。   (6)如果没有编写静态构造函数,而这时类中包含带有初始值设定的静态字段,那么编译器会自动生成默认的静态构造函数。 以下用例子代码进一步说明: /************************************************** * 静 态 构 造 函 数 练 习 * (1)①②③……为执行顺序 * (2)输出结果: static A() * static B() * X = 1, Y = 2 ***************************************************/ using System; class A { public static int X; static A() //④ 执行完后返回到③ { X = B.Y + 1; Console.WriteLine("static A()"); } } class B { public static int Y = A.X + 1; //③ 调用了A的静态成员, // 转到A的静态构造函数----> static B() //② 如果带有初始值设定项的静态字段, // 执行该类的静态构造函数时, // 先要按照文本顺序执行那些初始值设定项。 // 转到初始值设定项----> { Console.WriteLine("static B()"); } static void Main() //① 程序入口, // 如果类中包含用来开始执行的 Main 方法, // 该类的静态构造函数将在调用 Main 方法之前执行。 // 转到B的静态构造函数----> { Console.WriteLine("X = {0}, Y = {1}", A.X, B.Y);//⑤ 输出结果 Console.ReadLine(); } }  什么是静态方法  静态方法的1个特别作用就是不用创建类的对象,而直接用类里面的方法(public static 2个条件),例如: class A { public static void b() {..............} } 可以这样直接用: A.b(); 那么在程序中如何可以利用静态字段和静态构造方法,通常适用于于一些不会经常变化而又频繁使用的数据,比如连接字符串,配置信息等,当满足上面所说的两点时,进行一次读取,以后就可以方便的使用了,同时也节约了托管资源,因为对于静态成员,一个静态字段只标识一个存储位置。对一个类无论创建了多少个实例,它的静态字段永远都只有一个副本。 static: 类变量(对象共享)可以用类名,对象名点取,间接使用。 类方法 1)static方法中不能直接使用非静态成员, 因为非静态成员与实例相关,通过对象点取间接使用 2)static方法中不能用this(与实例相关) 3)非static方法中可以使用static成员  静态方法有什么弊端? 问:我翻看一些源码工程时看到几乎没有什么静态方法唯独Ms的SQLHelper中几乎全是静态方法 为什么呢?答1:在一些系统中使用非常频繁的方法都使用静态方法可以提高系统性能我是这么认为的 :)答2:本身不可升级, 重写 这要看一个软件产品的目的是什么了.答3:为了方便,不用实例化,但这样程序编译运行时就占用了系统资源答4:静态的属性和方法在程序启动的时候,就全部装入内存的,而不管这些方法、属性以后有没有用到。即使是没有人再访问程序,这部分内存仍然不会释放还有就是,所有访问者看到的静态属性的数据几乎都是一样的,比如A用户设置了UserName这个属性,B用户访问的时候,得到的UserName仍然是A用户设置的那个。这种特性,如果用在固定数据中,那不会有太大问题,比如连接字符串之类的 答5:静态方法/数据成员是属于类的,不是属于某一个对象的,因而调用它不需要实例化;静态方法和静态数据成员相当于共享变量。为该类的所有对象所共有,因而在需要共享数据时,定义这种类型时很好的选择。 一但定义一个类后(不一定要实例化对象)该类的所有静态成员就载入内存(并不是程序启动,就装入内存,没有定义该类时它不会载入内存) 静态成员的作用域与它所属的类的作用域相同 
     
     
      

  5.   

    静态的就别用属性了,可以这样写  public class myClass

      public static string C_Treeid;
     }
      

  6.   


    你这样做也不行啊,我试过了,别忘了我不光是读变量,而是在a.aspx页面先赋值给c_treeid,再到b.aspx里去读变量的值。
    比如
      

  7.   

    在java中叫JavaBean封装,而在c#中叫以公有的属性封装私有的字段,所以说最后返回的就是get访问器里的类型应该和该属性设置是一样的,楼主那样写就是在变相的改变了该字段的属性
      

  8.   

    这里错了
    你调用的是属性
    myClass.c_Treeid 是错的该是myClass.C_Treeid
      

  9.   


    可以吗?不行吧?
    如果改成
    1、myClass.cs (类文件) 
    public class myClass 
    { 
      string c_Treeid; 
      
      public string C_Treeid //在这里去掉了static
      { 
        get {return c_Treeid;} 
        set {c_Treeid=value; } 
      } 
    } 2、a.aspx.cs (赋值) 
    myClass.C_Treeid=txtTree.text; //在这里是行不通的了
    只能改成
    myClass my = new myClass();
    my.c_Treeid=txtTree.text;3、b.aspx.cs (取值) //问题来了,在这里如何拿得a页面赋的值
    mytext.text=myClass.C_Treeid; 
    应该改为什么呢?
    。。
      

  10.   

    本人觉得上面该说的都说了  你那个myClass该声明一个对象 要不你怎么用c_Treeid。
    要不就把c_Treeid变成静态的 
      

  11.   

    b中取值 myClass my = new myClass(); 
    string str = my.C_Treeid; 
    //难道取不出吗 winfrom 都是这样做的 asp.net 行不通吗?
      

  12.   

    1、myClass.cs (类文件) 
    public class myClass 
    { 
      private string c_Treeid; 
      
      public string C_Treeid 
      { 
        get {return c_Treeid;} 
        set {c_Treeid=value; } 
      } 
    } 2、a.aspx.cs (赋值) 
    如果上边的类和现在的没在一个页面,先引用
    myClass myclass=new myClass();
    myclass.C_Treeid=txtTree.text; 3、b.aspx.cs (取值) 
    如果上边的类和现在的没在一个页面,先引用
    myClass myclass=new myClass();
    mytext.text=myclass.C_Treeid; 
    要先负值再取值,还不可以
      

  13.   


      public class Class1
      {
        private static string aaa;
        public static string AAA
        {
          get { return aaa; }
          set { aaa = value; }
        }
      }a中
    Class1.AAA = "aaaaaaaaa";b中
    textBox1.Text = Class1.AAA;我是winfrom 中测试的 没问题也  我上面说的那个错了  重新new 了 肯定取不出来的
      

  14.   

    把static提前    static   string c_Treeid;
      

  15.   

    asp.net 为什么要怎么 存值取值了  想不通session cookie 干嘛用的
      

  16.   

    楼主把成员变量作为普通的成员,而属性作为静态成员,在静态成员里访问普通成员,这个是不可能实现的
    但是反过来是可以的,也就是属性是非静态,成员是静态。public class myClass 
    { 
      static string c_Treeid; 
      
      public string C_Treeid 
      { 
        get {return c_Treeid;} 
        set {c_Treeid=value; } 
      } 
    } 
    这样子那个静态变量就是全局共享的,但是如此一来就要注意有多少个class实例会访问此变量
    总之这似乎不是什么好主意。
      

  17.   

    人才,static string  c_Treeid;
      

  18.   

    我怎么一点问题也没有呢,楼主要做的事不就是把变量值在两个网页间传递吗?public class MyClass
    {
        private static string c_Treeid;
        public static string C_Treeid
        {
            get { return c_Treeid; }
            set { c_Treeid = value; }
        } public MyClass()
    {
    //
    // TODO: Add constructor logic here
    //
    }
    }
      

  19.   


    private int _MemberID;        public int MemberID
            {
                get { return _MemberID; }
                set { _MemberID = value; }
            }在类名. MemberID=赋值    是要这样子么?