这两种类型的特性定义之间的区别是什么

本文关键字:之间 区别 是什么 定义 两种 类型 | 更新日期: 2023-09-27 18:20:28

这两种类型的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;}
  }
}

这两种类型的特性定义之间的区别是什么

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

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();}
  }
}

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

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