这两种属性定义有什么区别?

时间:2013-07-01 10:14:26

标签: c# properties getter-setter

这两种property定义有什么区别?

第一

public class Person   
{ 
   public string FirstName { get; set; } 
   public string LastName { get; set; } 
}

第二

public class Person   
{
  private string firstName;
  private string lastName;

  public string FirstName
  {   
        get { return this.firstName; }  
        set { this.firstName = value;}
  }

  public string LastName
  {   
        get { return this.lastName; }  
        set { this.lastName = value;}
  }
}

2 个答案:

答案 0 :(得分:1)

第二个解决方案与第一个解决方案相同,只是它更加扩展。

public class Person   
{ 
   public string FirstName { get; set; } 
   public string LastName { get; set; } 
}

这是创建公共值的默认方式,但是如果您希望在设置或获取值时执行任何操作,则使用第二个解决方案,该解决方案与第一个解决方案相同但扩展。

例如,如果您只想使用小写字母,则可以使用以下代码:

public class Person   
{
  private string firstName;
  private string lastName;

  public string FirstName
  {   
        get { return this.firstName; }  
        set { this.firstName = value.ToLower();}
  }

  public string LastName
  {   
        get { return this.lastName; }  
        set { this.lastName = value.ToLower();}
  }
}

答案 1 :(得分:0)

在某些情况下,您可能需要在设置和检索值之前添加一些额外的逻辑,在这种情况下,您提到的第二种方式将有所帮助

就像你想检查长度或分配一些会话值等 set { ViewState["SomeStr"] = value; }