我写 = null 结果提示类型错误晕

解决方案 »

  1.   

    结构是值类型, 不是引用类型, 不能与null比较.
      

  2.   

    使用 new 运算符创建结构对象时,将创建该结构对象,并且调用适当的构造函数。与类不同的是,结构的实例化可以不使用 new 运算符。如果不使用 new,那么在初始化所有字段之前,字段将保持未赋值状态且对象不可用。也就是说,不必担心结构没有初始化的问题,如果有某些字段没初始化,结构将不可用,会有编译错误,根本就不会通过编译。
      

  3.   

    比方说一个点POINT结构,我想判断它是否为空,应该怎么写呢?
      

  4.   

    有一个静态字段: System.Drawing.Point.Empty, 其实和 new Point(0,0) 是一回事.
    if (myPoint == Point.Empty) ...其实不用判断, 如果结构没有初始化就使用, 编译器会给出编译错误.
      

  5.   

    晕,可是偶的结构里没有这个EMPTY呀~其实偶结构里就一个名字和一个地址,
    如果LIST里要处理N多结构的话,偶想判断这个结构是否为空就是搞不定~~
      

  6.   

    struct Point
    {
      int x, y;
      public static readonly Point Empty = new Point();
    }