2017-02-24 7 views
0

私はC#を初めて使用しています。私たちはプライベートメンバ変数を宣言されているクラスの外部からアクセスできないようにクラスに宣言しますが、これを単にプライベート宣言するだけでsetを使ってgetする必要はありますか?私は、顧客クラスのコメントを削除し、プロパティを設定し使用することを許可してもらうとき、例えばのために、私はクラスの顧客を持っているset/getを使ったプライベートプロパティと、C#を使っていないプライベートプロパティの違いは何ですか?

class Customer 
    { 
     private double TotalPurchases; // { get; set; } 
     private string Name; // { get; set; } 
     private int CustomerID; // { get; set; } 
     public Customer(double tp, string nam, int id) 
     { 
      TotalPurchases = tp; 
      Name = nam; 
      CustomerID = id; 
     } 

     public void value() 
     { 
      Console.WriteLine("Total purchases so far " + TotalPurchases + " " + Name + " " + CustomerID); 
     } 
    } 

    class Program 
    { 
     static void Main() 
     { 
      // Intialize a new object. 
      Customer cust1 = new Customer(20.0, "C#", 10); 
      cust1.value(); 
      Console.ReadLine(); 
     } 
    } 

、それはまったく違いはありません! get; set;なし

+2

が言われて、そのフィールドではない財産 –

答えて

3

とどのようにFieldを割り当て、または取得さに対する制御がないFieldようとFieldとそれが動作します。

get setが存在する場合は、ロジックに基づいてプロパティに残る値を制御できます。 GETが設定されていない

private string _foo; 
public string Foo 
{ 
    get 
    { 
     if (_foo == null) return string.Empty; 
     return _foo; 
    } 
    set 
    { 
     if (value == null) return; 
     _foo = value; 
    } 
} 
+0

で、彼らはまた、反射許可は別々にそれらにアクセスするという意味で正式に異なっています。 – Codor

+0

@Codor:はい、まさにその通りです。反射または反射なし。 –

関連する問題