尤其是在应用上,谢谢!

解决方案 »

  1.   

    属性从其内部看像函数,外部看像字段。读写由get/set来完成,为此,可以对get/set进行修饰符的控制。比如:public string Temp{
    get{return m_temp;}internal set{m_temp=valu;}//这里面就对set进行了控制,完成外部程序集无法直接进行赋值。
    }当然,你也可以只用一个get或者一个set。使属性为只读或者只写不可访问。还有一点:属性里面可以加载方法。
    对于字段的话。就没有这些东西了。大概了解的也就这些。
      

  2.   

    根据MicroSoft编写.NET代码的规则—字段(除了const字段外)应总是私有的,并由公共属性封装,但是对于简单的结构,许多开发人员认为公共字段是可接受的编程方式。通过属性访问字段,而不是直接访问字段,不需要担心这些额外的函数调用会在C#中带来性能损失,C#代码会编译为IL,然后再运行期间进行正常的JIT编译,获得内部可执行代码,JIT编译器可生成高度优化的代码,并在适当的时候内联代码。
      

  3.   

    属性和字段的区别楼上各位都讲的比较好了,我还有一些愚见:
    1.属性作为对字段的包装,可以提供对字段的更多控制,例如private int age;public int Age
    {
       get {return this.age;}
       set 
       {
          int inputValue = value;
          if( (inputValue <0)||(inputValue>120))
             throw new OutOfRangeException("The age is error!");
       }
    }
    属性具有更加直观,具有更加强的逻辑意义,并且可以控制读,写