2012-07-06 6 views
10

Javaゲッター/セッターで少し違っているが、このようなものをコード化する "C#方法"とは何ですか?C#でプロパティを使用するにはどうすればよいですか?

オプションA。)

private string name; 

    public string Name 
    { 
     get { return name; } 
     set { name = value; } 
    } 

    private int time; 

    public int Time 
    { 
     get { return time; } 
     set { time = value; } 
    } 

B。)

private string _name; 
    private int _time; 

    public string name 
    { 
     get { return _name; } 
     set { _name = value; } 
    } 

    public int time 
    { 
     get { return _time; } 
     set { _time = value; } 
    } 

C。)

public string name {get; set;} 
    public int time {get; set;} 

[OK]を、いくつかの例があります。何が良く見えますか?すべてのプライベート変数の宣言を最初に記述し、次にプロパティを記述するか、変数とプロパティの宣言を隣り合わせにグループ化する必要があります。

答えて

26

、:あなたはそれで非自明な何かをしない限り、

public string Name { get; set; } 
public int Time { get; set; } // Odd type for time, admittedly... 

は手動で自分で財産を書く気にしないでください。

の場合は、プロパティの実装を手動で記述します。どのようにプライベート変数に名前を付けるかはあなた次第です。個人的には次のように使用します:

private string name; 
public string Name 
{ 
    get { /* whatever */ } 
    set { /* whatever */ } 
} 

...しかし、アンダースコアを使用する場合は、それがあなたの特権です。

メンバーの発注に関しては、それはさらにあなた自身の選択です。あなたがチームと一緒に作業していると仮定すると、チームと話し合って、現地の大会が何であるかを見てください。

3

あなたの特定のケース(ゲッターやセッターの無いロジック)で最良のオプションは、C(C#の基準に従うようにプロパティ名の小さな変化を伴う)

public string Name {get; set;} 
public int Time {get; set;} 
11

であるあなたはへのアクセスを必要としない場合基礎となる裏側のフィールドがある場合は、自動プロパティが(C)の推奨方法です。ただし、.NETの命名規則に従って、PascalCaseにする必要があります。

.NETの命名規則以下Dについてどのように
public string Name { get; set; } 
public int Time { get; set; } 
1
public string Name {get; set;} 
public int Time {get; set;} 
6

最初の二つは、あなたが会社の/ devグループたり、独自の意思決定に基づいて選択しなければならないだけで命名convensionsです。

同じプロパティのデカールの短い方法です。ここで実際のfieldは実行時に生成されます。

短所:短くて簡単です

ショート短所:は geter/setterメソッドの内部で何かを置くことができない、Visual Studioのにブレークポイントを置くことができない...

・ホープ、このことができます。

3

フィールドを定義するときにアンダースコアが使用されます。単純なゲッター/セッターが必要な場合は、コンパイラによってバックグラウンドで定義されるため、フィールドを自分で定義する必要はありません。

2

私はオプションのために行くだろう、ほとんどの他の人は既に投稿した。

public string Name {get; set;} 
public int Time {get; set;} 

セッターとゲッターの保護レベルを個別に変更することができます。

public string Name {get; protected set;} 
protected int Time {get; private set;} 

ホールのプロパティよりも高い保護しか使用できません。

関連する問題