你这么用过属性吗?

protected DataTable Chosen
        
{
            
get
            
{
                
if(Session["Chosen"== null)
                
{
                    DataTable dtChosen 
= new DataTable();
                    dtChosen.Columns.Add(
"Id");
                    dtChosen.Columns.Add(
"Name");
                    dtChosen.Columns.Add(
"Manager");
                    dtChosen.Columns.Add(
"Address");
                    dtChosen.Columns.Add(
"UseDesp");
                    dtChosen.Columns.Add(
"Investment");
                    dtChosen.Columns.Add(
"ParkingSpace");
                    dtChosen.Columns.Add(
"Builder");
                    dtChosen.Columns.Add(
"Area");
                    dtChosen.Columns.Add(
"PicUrl");
                    dtChosen.Columns.Add(
"PicType");
                    Session[
"Chosen"= dtChosen.Copy();
                }

                
return (DataTable)Session["Chosen"];

            }

            
set
            
{
                Session[
"Chosen"= value;
            }

        }


此属性一声明,我多数的操作Session中的表,就只要写个Chosen就行了,我不必写(DataTable)Session["Chosen")这么一长串,也不必每次判断Session["Chosen"]是不是是Null,微软的建议,只写的访问最好写成方法,但是这里我又要读又要写,用方法要写两个,再者用方法代码和语义都不如属性来得直接。

但是我们来看C#对属性的定义,一般属性是用来给类的内部成员提供外部访问的接口,但凭什么property就不能做成给内部用呢?真是少根筋。哈哈,我这叫童子骂夫子,我的宗旨是实用就行,所以在某某高深层面来讲我的是错误的,请指正。