私のコードは次のような行の数百ました:
public string abc { get; set; }
public string def { get; set; }
すべては彼らの最後に{ get; set; }
を持っています。
コードをクリーンアップし、まだ公開している間に{ get; set; }
の必要性を取り除く方法があるのではないかと私は思います。
私はそれが大きな問題ではないことを知っていますが、できるだけ自分のコードをクリーンアップしたいと思います。
私のコードは次のような行の数百ました:
public string abc { get; set; }
public string def { get; set; }
すべては彼らの最後に{ get; set; }
を持っています。
コードをクリーンアップし、まだ公開している間に{ get; set; }
の必要性を取り除く方法があるのではないかと私は思います。
私はそれが大きな問題ではないことを知っていますが、できるだけ自分のコードをクリーンアップしたいと思います。
なしうまく。自動的にプロパティを実装するのは{get;set;}
です。彼らなしでは彼らは畑になる。あなたは本当にパブリックフィールドを望んでいないので、それをそのままにしておきます。
本当に、ここで問題は解決していません。それを残す。あなたはことができますが、彼らはもはやパブリックプロパティ意志と代わりの形に取るなど
カウントこれは(自動的に実装プロパティが導入された少なくともので)正常であり、{get;set;}
はラインに追加されていません(確かに優先ではなく、必ず、その独自の裁量で使用するために、ひんしゅくを買うことになる)パブリック変数:
public string abc;
public string def;
私はプロパティとしてそれらを保つと言うだろう、自動実装プロパティは神ですあなたの懸念は根拠がありません。
同じプロパティを持つクラスがある場合は、互いに拡張できます。 Student
とShopKeeper
上記の例では
class Person
{
public string Name { get; set; }
}
class Student : Person
{
public string StudentId { get; set; }
}
class ShopKeeper : Person
{
public Shop Shop { get; }
}
あなたは一度だけ、それを記述する必要を意味し、プロパティName
を継承します。
get
とset
の方法をもっと簡単にすることはできません。
{ get; set; }
を削除すると、パブリックプロパティの代わりにパブリックフィールドが表示されます。依存関係のコンポーネントを壊さずに実装を隠して変更できるため、クラスの単純なメンバーを公開するにはプロパティがよく使われます。
コードの繰り返しが多い場合は、コードをクリーンアップするために、共通のプロパティ(およびメソッド)に基本クラス/継承を使用することを検討してください。
:)あなたは、以下のようにバッキングフィールドとプロパティを見ている必要があります。
private string _test;
public string Test
{
get { return _test; }
set { _test = value; }
}
今それは:)
{ get; set; }
をクリーンアップする必要がありますが、setter and getter property(正確にそれらを伝えることauto-implemented propertiesある)のために持っていることを意味しフィールド。クラス内にパブリックフィールドを持つのは良い考えではないので、フィールドをプロパティでカプセル化する必要があります。それで、あなたがそれらを持っていることは良いことです。
* *は、プロパティを実装するための最も冗長な方法です。 –
可能な重複[質問](http://stackoverflow.com/questions/1693875/c-can-i-remove-get-set) – KaeL
私はこのコードがおそらく、すでに隠蔽して機能を抽象化していると考えれば、最もクリーンであると思います。それ以下であれば財産ではないでしょう。あなたは 'public string abc;'を使うことができますが、それはメンバーではなくプロパティです。 –