0

propertyこれら2つのタイプの定義の違いは何ですか?

初め

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

2番

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;}
  }
}
4

2 に答える 2

1

2 番目のソリューションは、最初のソリューションと同じですが、より拡張されています。

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

これはパブリック値を作成するデフォルトの方法ですが、値の設定または取得中に何かを実行したい場合は、最初のソリューションと同じですが拡張された 2 番目のソリューションを使用します。

たとえば、名前だけを小文字にしたい場合は、次のコードを使用します。

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();}
  }
}
于 2013-07-01T10:31:05.900 に答える
0

場合によっては、値を設定および取得する前に追加のロジックを追加する必要がある場合があります。そのような場合、言及した2番目の方法が役立ちます

長さを確認したり、セッション値を割り当てたりする場合など set { ViewState["SomeStr"] = value; }

于 2013-07-01T10:23:27.163 に答える