public   struct   StudentName   
  {   
          private   string   g_sFirst;   
          private   string   g_sLast;   
          public   string   FirstName   
          {   
                    get   {return   g_sFirst;}   
                    set   {g_sFirst=   value;}   
            }   
    
          public   string   LastName   
          {   
                    get   {return   g_sLast;}   
                    set   {g_sLast=   value;}   
            }   
  }   
    
  public   class   Student   
  {   
          private   StudentName   g_Name;   
          public   StudentName   Name   
          {   
                    get   {return   g_Name;}   
                    set   {g_Name   =   value;}   
          }   
  }   
    
  public   class   MainClass   
  {   
          public   static   void   main(string[]   args)   
          {   
                    Student   s1   =   new   Student();   
                    s1.Name.FristName   =   "gates";   
                    //在上面发生错误:无法修改“Student.Name”的返回值,因为它不是变量   
            }   
  }  代码就是这样,这个错误不太明白,高手给讲解一下吧。 

解决方案 »

  1.   

    在StudentName中加上个方法试下~
      

  2.   

    别用属性了~对于结构属性的使用可能有一定限制,结构是值类型的存储在栈上,类是引用类型的存储在堆上~  public   class   Student   
      {   
          public   StudentName   Name;
      }   
      

  3.   

    StudentName name = s1.Name;
    name.FristName = "gates";
    s1.Name = name
      

  4.   

     Student s1 = new Student();
                StudentName _Name = new StudentName();
                _Name.FirstName = "ASDF";
                s1.Name = _Name;