日期:2014-05-18  浏览次数:20493 次

困扰很久的问题,现在想彻底了解&
在程序设计里面,经常使用到变量,比如
String   ShangPinID;  
SahngPinID=1
这是最普通的应用方法了,定义变量之后直接就赋值,很简单很直接,我从来都是使用这样的操作方法:
但是,在网上经常遇到这样的问题:
public   class   Stat_Class
        {
                private   String   ShangPinID;   //商品ID
                private   String   Sp_Name;   //商品名称
                private   decimal   Sp_Price;   //商品价格
                private   int   Sp_Quan;   //商品数量

                public   string   ItemID
                {
                        get   {   return   ShangPinID;   }
                        //set   {   ShangPinID   =   value;   }
                }

                public   string   ShangpinName
                {
                        get   {   return   Sp_Name;   }
                        //set   {   Sp_Name   =   value;   }
                }
                //构造方法,初始化商品的各个属性
                public   Stat_Class(string   ItemID,   string   ShangpinName,   decimal   Price,   int   Quantity)
                {
                        ShangPinID   =   ItemID;
                        Sp_Name   =   ShangpinName;
                        Sp_Price   =   Price;
                        Sp_Quan   =   Quantity;
                }
即使用构造函数通过GET   或SET来获得和取得变量的值,不知道为什么要这样做,难道这样做比直接赋值使用的办法更好吗,本人一直弄不明白,高人能否说明白,

------解决方案--------------------
其实就是为了使用方便,定义这样的构造函数之后就可以使用:
Stat_Class cls = new Stat_Class(ItemID, ShangpinName, Price, Quantity);
------解决方案--------------------
属性:C#封装方法的体现,隐藏了内部的变量,只给外部提供接口,比如在你的代码中:

public string ItemID
{
get { return ShangPinID; }
//set { ShangPinID = value; }
}

你的ItemID是只读的,因为它只有get操作符,不能写(set被你注释掉了),而如果你直接向外部公开ShangPinID变量就没这么容易实现只读的目的;

更重要的是,你可以在get/set时加入你自定义的逻辑在里面,比如你想定义一个属性来存放 ShangPinID + "& " + Sp_Name,就可以这样写:

public string ItemID
{
get { return ShangPinID + "& " + Sp_Name; }
}

这样引用的只引用ItemID就行了,不用写更多的代码;

自己的一些体会,第一次回贴,如果有用请给点分呵呵
------解决方案--------------------
五个裤衩怎么来的……
还有那信誉值……
------解决方案---------------