10

Javaではゲッター/セッターの見た目が少し違うのでわかりませんが、このようなものをコーディングするための「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;}

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

4

7 に答える 7

26

.NETの命名規則に従って、dはどうですか。

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 */ }
}

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

メンバーの順序については、それはさらにあなた自身の選択です。チームで作業していると仮定して、チームと話し合い、地域の大会が何であるかを確認します。

于 2012-07-06T13:42:28.467 に答える
11

基になるバッキングフィールドにアクセスする必要がない場合は、自動プロパティが推奨される方法です(C)。ただし、.NETの命名規則によれば、これらはPascalCaseである必要があります。

public string Name { get; set; }
public int Time { get; set; }
于 2012-07-06T13:42:21.620 に答える
6

最初の2つは、会社/開発グループまたはあなた自身の決定に基づいて選択する必要がある会議に名前を付けるだけです。

3番目のケースは、同じプロパティをデカールする簡単な方法で、実際fieldはランタイム自体によって生成されます。

短い長所:短くて簡単です。

短い短所:geter / setterに何かを配置できない、VisualStudioにブレークポイントを配置できない...

お役に立てれば。

于 2012-07-06T13:42:57.520 に答える
3

特定の場合(getterまたはsetterにロジックがない場合)、最適なオプションはC(C#標準に従うようにプロパティ名を少し変更することで)です。

 public string Name {get; set;}
 public int Time {get; set;}
于 2012-07-06T13:42:20.870 に答える
3

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

于 2012-07-06T13:43:44.897 に答える
2

私はオプションを選びます、他のほとんどはすでに投稿されています。

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

セッターとゲッターで個別に保護レベルを変更できることに注意してください。

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

穴のプロパティに適用されるよりも高い保護のみを使用できます。

于 2012-07-06T14:25:26.983 に答える
1
public string Name {get; set;}
public int Time {get; set;}
于 2012-07-06T13:42:31.260 に答える