0

重複の可能性:
C#:「{get; セットする; }」?

私のコードには、次のような数百行があります。

public string abc { get; set; }
public string def { get; set; }

すべて{ get; set; }の最後にがあります。

私が疑問に思っているのは、コードをクリーンアップし、{ get; set; }公開しながらコードの必要性を排除する方法があるかどうかです。

大きな問題ではないことは承知していますが、できる限りコードをクリーンアップしていきたいと思います。

4

6 に答える 6

9

うまくいかない。{get;set;}それらを自動的に実装されたプロパティにしているのはです。それらがなければ、それらはフィールドになります。public フィールドは本当に必要ないので、そのままにしておきます。

本当に、ここでは何の問題も解決していません。それを残します。これは正常であり (少なくとも、自動的に実装されたプロパティが導入されて以来)、{get;set;}行数などに追加されていません。

于 2011-04-11T10:24:47.620 に答える
3

できますが、それらはもはやパブリック プロパティではなく、代わりにパブリック変数の形式を取ります (これは確かに優先的ではなく、眉をひそめられることになるため、独自の裁量で使用してください)。

public string abc;
public string def;

それらをプロパティとして保持すると思います。自動実装されたプロパティは神からの贈り物であり、あなたの懸念は根拠がありません。

于 2011-04-11T10:25:09.727 に答える
1

を削除する{ get; set; }と、パブリック プロパティの代わりにパブリック フィールドが取得されます。プロパティは、多くの場合、クラスの単純なメンバーを公開するための推奨される方法です。これにより、実装を非表示にして、依存するコンポーネントを壊さずに変更できるためです。

コードの繰り返しが多い場合は、共通のプロパティ (およびメソッド) に基本クラス/継承を使用してコードをクリーンアップすることを検討してください。

于 2011-04-11T10:26:20.583 に答える
1

{ get; set; }フィールドのセッターとゲッタープロパティがあることを意味します(これらが自動実装されたプロパティであることを正確に伝えます)。クラスにパブリック フィールドを含めることはお勧めできないため、フィールドをプロパティでカプセル化する必要があります。ですから、持っていると便利です。

于 2011-04-11T10:26:53.120 に答える
0

同じプロパティを持つクラスがある場合は、互いに拡張できます。

class Person
{
    public string Name { get; set; }
}

class Student : Person
{
    public string StudentId { get; set; }
}

class ShopKeeper : Person
{
    public Shop Shop { get; }
}

上記の例ではStudent、 andShopKeeperは property を継承しますName。つまり、一度だけ記述する必要があります。

getandsetメソッドをこれ以上単純にすることはできません。

于 2011-04-11T10:25:30.843 に答える
0

:) 以下のようなバッキング フィールドを持つプロパティが表示されているはずです。

        private string _test;
        public string Test
        {
            get { return _test; }
            set { _test = value; }
        }

今はクリーンアップが必要です:)

于 2011-04-11T10:26:31.827 に答える