那么多的get set有什么用?
为什么要get set 直接定义一个变量不就行了?using System;namespace tour.Model
{
public class TourLine
{
private int _Id;
private string _Name;
private int _LineType;
private string _StartCity;
private string _StartDate;
private string _SignupEndDate;
private int _Price;
private string _Note;
private string _InFeeNote;
private string _NoinFeeNote;
private int _DayNum;
private DateTime _CreateDate;
private string _Images;
private int _IsCommend;
private string _Tips;
private int _IsIndex;
private int _Status;
public virtual int Id 
{
get { return _Id; }
set { _Id = value; }
}
public virtual string Name 
{
get { return _Name; }
set { _Name = value; }
}
public virtual int LineType 
{
get { return _LineType; }
set { _LineType = value; }
}
public virtual string StartCity 
{
get { return _StartCity; }
set { _StartCity = value; }
}
public virtual string StartDate 
{
get { return _StartDate; }
set { _StartDate = value; }
}
public virtual string SignupEndDate 
{
get { return _SignupEndDate; }
set { _SignupEndDate = value; }
}
public virtual int Price 
{
get { return _Price; }
set { _Price = value; }
}
public virtual string Note 
{
get { return _Note; }
set { _Note = value; }
}
public virtual string InFeeNote 
{
get { return _InFeeNote; }
set { _InFeeNote = value; }
}
public virtual string NoinFeeNote 
{
get { return _NoinFeeNote; }
set { _NoinFeeNote = value; }
}
public virtual int DayNum 
{
get { return _DayNum; }
set { _DayNum = value; }
}
public virtual DateTime CreateDate 
{
get { return _CreateDate; }
set { _CreateDate = value; }
}
public virtual string Images 
{
get { return _Images; }
set { _Images = value; }
}
public virtual int IsCommend 
{
get { return _IsCommend; }
set { _IsCommend = value; }
}
public virtual string Tips 
{
get { return _Tips; }
set { _Tips = value; }
}
public virtual int IsIndex 
{
get { return _IsIndex; }
set { _IsIndex = value; }
}
public virtual int Status 
{
get { return _Status; }
set { _Status = value; }
}
}
}

解决方案 »

  1.   

    定义类的属性.
    例:如只有get.
    则该属性就是只读的.
      

  2.   

    get set是用来扩展域的,也就是相当于C里的变量,只是用起来更加灵活而己.
    简单的讲,使用get/set时可以做处理,而直接读取/设置字段值时不能做任何处理
    先是赋值给value(相当一个存储空间),然后再用get{}返回给变量,实际上也就是一次改变变量值的过程
      

  3.   

    public virtual string是什么意思 跟public  string有什么区别
      

  4.   

    定义属性都是这么做的。
    就像一楼说的如只有get.则该属性就是只读的.
    如果get和set都有,那么在使用的时候跟使用Public成员变量差不多,但是如果要将成员变量对外公开,则最好将其定义为属性。
      

  5.   

    get set是和类的private数据的接口,有两个功能,一是对类的数据设置只读和只写功能,另外就是对数据进行处理,如进行转换和判定数据是否有效,设置默认值等。
    举个例子,比如复数类的实例3+4i,要得到复数的角度,先用反正切atan算出弧度,再乘以180/pi得到角度。那么代码可以为:
     public double angle
            {
                get
                {
                    return System.Math.Atan(虚部/ 实部) * 180 / System.Math.PI;
                }
            }
      

  6.   

    virtual 是虚的,
    不提供真正实现,
    看看到  msdn吧
      

  7.   

    就此例来说,Tourline类中Name等变量都设为私有数据,不允许外部随便修改,但又要给这些数据提供访问接口,因此定义了很多virtual函数,以后的扩展类再对如何通过get读取和set设置进行具体化。
      

  8.   


    首先virtual是虚的,但并不是不提供真正实现virtual:虚方法/属性,提供实现,但是子类可以override;
    abstract:抽象方法/属性,不提供实现,子类必须override。get,set这是C#里属性的实现方式,更好的体现了面向对象的封装特点。你问get set有什么用,还不如去研究下面向对象为什么提倡封装。Encapsulate what varies,这是面向对象设计的一条重要原则。