get{}set{}的定义问题?
一直都这么做,但还是不知道为什么? 
 比如: 
 public   class   Port 
 { 
  private   int          _pID; 
  private   string _pName; 
  private   string	_pPerUnit; 
  private   int	_total;  		 
 public   int   pID 
 { 
          get   {   return   _pID;      } 
          set   {   _pID   =   value;   } 
 } 
 public   string   pName 
 { 
       get   {   return   _pName;      } 
       set   {   _pName   =   value;   } 
 } 
 ........   
 为什么要用get和set再加上value转一次呢?   
 为什么不把索引直接定义成: 
 public   string   pName; 
 这一个value的传入过程是怎么一个原理?
------解决方案--------------------转自: 
 http://www.microsoft.com/china/msdn/library/langtool/vcsharp/EffectiveCsharp.mspx?mfr=true   
 学习研究.NET的早期,经常碰到一些学习C#/.NET的朋友问,要属性这种华而不实的东西做什么?后来做项目时也时常接到team里的人的抱怨反馈,为什么不直接放一个public字段?   
 使用属性,避免将数据成员直接暴露给外界   
 使用属性的理由:   
 1.可以对赋值做校验、或者额外的处理 
 2.可以做线程同步 
 3.可以使用虚属性、或者抽象属性 
 4.可以将属性置于interface中  
 5.可以提供get-only或者set-only版本,甚至可以给读、写以不同的访问权限(C# 2.0支持)    
------解决方案--------------------赋值器可以方便你进行控制 就如同 别人问你是什么人 
 是你掏出身份证给他看 你可以决定给什么人看 怎么给 
 还是所有人都直接去你口袋掏身份证看 2种方式