一个简单的c#结构类型定义、赋值出问题了。
public struct Book//结构类型
        {
          public int     price;
          public string  title;
          public int      id;
        }
        Book abc=new Book();
        abc.price=32;
        abc.title="asp.net教程";
        abc.id=50;它提示赋值的“=”无效;
也就是赋值那块出问题了;
不知道咋回事??

解决方案 »

  1.   

           public struct Book//结构类型 
            { 
              public int    price; 
              public string  title; 
              public int      id; 
            }      class Test
          { 
            Book abc=new Book(); 
            abc.price=32; 
            abc.title="asp.net教程"; 
            abc.id=50; 
          }a
      

  2.   

    C#只有类和结构的定义可以直接放在namespace下。
    对变量的定义只能放在某个类下方。
    至于赋值,放在类下方的赋值一般在此类的构造函数中,有时甚至仅在方法中赋值。
      

  3.   

    都已经提示你了,像你的生命BOOK类型的变量abc以及对abc的赋值,应该是出现在某一个方法内部,不能直接放置到命名空间或者是类的主体中
      

  4.   

      初始化时,class要使用new关键字;而struct可以不使用new关键字,struct在声明时就进行了初始化过程,所有的成员变量均默认为0或null。
      所以“它提示赋值的“=”无效; ”应该是指:Book abc=new Book(); ,改成Book abc;试试
      

  5.   

    楼主应该把book结构类型应用在具体方法中,参见如下:public partial class temp_Default1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            //在page_load中生成book,值类型
            Book abc = new Book();
            abc.id = 50;
            abc.price = 32;
            abc.title = "asp.net教程";   
        }
    }//定义book结构类型
    public struct Book
    {
        public int price;
        public string title;
        public int id;
    }
      

  6.   

    namespace aa{
         public struct Book//结构类型 
            { 
              public int    price; 
              public string  title; 
              public int      id; 
            }
       public class AAA{
          public void AAAA
      { 
            Book abc=new Book(); 
            abc.price=32; 
            abc.title="asp.net教程"; 
            abc.id=50; 
                
      }
    }
         
    }