C#3.0の自動性—有用ではありませんか?[定休日]
-
08-06-2019 - |
質問
注意:これを掲載した時に始めC#.と2014年の知識、私は本当にできるという自動特性の最適なため、C#言語です。
私の作成に使用す私の物件のC#ソースコードを使用し、民間と公共分野:
private string title;
public string Title
{
get { return title; }
set { title = value; }
}
今、 .当期純 3.0持っていた自分としては、自動特性:
public string Title { get; set; }
ごきげんよう、トメ子です。哲学/主観的な質問がありま理由での使用これらの自動特性を除くから省五行のコード各す。私の個人的を追求すること、そして身を隠したりしていらしてくださいませんの大ファンで、黒マジックがあります。
この隠れた個人分野でもありませんからのデバッガであるOKえているという事実を考えると、取得/設定機能は何も行いません。がほしい場合は実施する一部のgetter/setterの論理は、今まで使っていたに組ます。
んの収穫だと思うの保存のコード(vs間)を損なうことなく変更には、getter/setterロジック以降、その後は再びできていることを宣言するだけで、公共分野の"公文字列タイトル"の必要がなく、{get;セット}ブロックでは、このようにも省よります。
では、どう思欠。かも実際に使いたいオート。
解決
利用しているかにスタックオーバーフロー.
にご興味はありませんか?ディスカッション 物件前Public変数.まぁうこれは反応し、そのためです。
他のヒント
別途ご相談ください だけで 保存します。このマイルを読みやすくなりま荷します。彼らはより早く書きやすいナンス性の向上にも寄与します。省コードは常に良い目標です。
設定できます異なるスコープ:
public string PropertyName { get; private set; }
ので、できるだけ変更される内部のクラスです。この最初がやりたかっただけで不変なときにアクセス、個セッターを通じて反射を生み出します。
としてのC#6を作ることもできますtrue readonly
性につ不変性の変更はできません外部のコンストラクタ:
public string PropertyName { get; }
public MyClass() { this.PropertyName = "whatever"; }
コンパイル時間となる:
readonly string pName;
public string PropertyName { get { return this.pName; } }
public MyClass() { this.pName = "whatever"; }
に不変なクラスの多くのメンバーにこの余剰コードです。
三つの大きなマイナス面を利用分野での特性:
- できませんdatabindの研究ができるホテルグランドパレスのすぐ横
- さすが使用できないので後容易に変更していホテルグランドパレスのすぐ横
- ある属性を追加できるホテルグランドパレスのすぐ横にご追加ができな分野
個人的に愛しオート。何が悪いのラインのコードについて教えてください。だいたいものsetterか又はセッター、問題はありませんで変換して通常の物件です。
になっているということを使用できる分野だから、"ロジカル(論理的)であるしい変換します。これが現在は問題な利用の反射および場合に他?).
ものすすめの設定にアクセスレベルのgetterとsetterができない。
うことなんでしょうけれど同じvarキーワードとなります。の個人の好みです。
からBjarne Stroustrup、クリエイターのC++:
私は特に嫌う授業の取得および設定機能ることがしばしば示唆するようでないクラス。だからデータ構造です。場になっているので、データ構造でデータ構造です。
あけましておめでとうございますか?たですね。維持することが可能になっています単なる包装の民間分野に変換しますが、実際には何も内のget/setこのオブジェクト指向"しいことだと思います。このMicrosoftソリューションの問題彼らは基本的には公的分野と結合できます。
一つでも誰もそうではなく平和的話し合いを行い、どのように自動特性は残念なことにな変更不能なオブジェクト(通常は変更不能な構造体).なぜなら本当に良い:
private readonly string title;
public string Title
{
get { return this.title; }
}
の分野で初期化され、コンストラクタを介して渡されたパラメータを読み込みます。)
このメントで簡単に get
/private set
autoproperty.
私は常に創造性の代わりに公共分野で利用できる特性インターフェース定義に使用できなくな公共分野のインタフェース定義で設定します。
オート特性としても、黒マジックとしてもクライアントまで、フルのC#.一度考えていますの作成をILようとして受け入れられている通常のC#財産初のかもしくは黒魔法のより多くのその他の言語を構築します.
使うオート物件。前のC#3は何もできなかったんすべての入力で引用される変数です。
このインには見逃せないこ
public string Name = "DefaultName";
きのデフォルトへのコンストラクタと。退屈:-(
う構築するには直感的に、コードには大きなプラスである。
そのような特徴が入っている言語のようにRubyできな力と動的セントレアは、ビジネスジェットを削減余剰コードとします。
Rubyたこととして
attr_accessor :my_property
attr_reader :my_getter
attr_writer :my_setter
唯一の問題はいえなく十分です。同リリースのコンパイラを追加した自動産、付加部分ます。かぜのとがあります。簡単な"部分的に<PropertyName>変更されたこれらのものを本当に本当に役立ちます。
簡単で短いを処理しなければいけない真実装内部の物体のどこかにいいタイプの外部インタフェース。
します。
気をつけなければいけない、注意が必要ですが、私の理解、 だけで 統語糖C#3.0、そのIL生成されるコンパイラは同じです。私も同意を避け、黒マジックがすべて同じ行数と同じものは普通かもしれない。
私の意見を使用自動特性の代わりにpublicフィールドです。とはいえ、"わらびもち"をここで妥協:
開始によると、ファッション 内部 分野のネーミングコンベンションで使える物件です。きのいずれか
- 必要なアクセス分野への外部から組立、
- 添付する必要が、"ロジカル(論理的)である、getter/setter
い:
- 名前の変更の
- で民間
- 追加公共物
クライアントコード性の高い配送が必須となります。
いつかもシステムに成長してい分解で別のアセンブリや複数のソリューション。その際、露出の分野に溜ますので、Jeff、 変更する公共分野、公共性は破れのAPIの変更.
使っていCodeRushでより速オート。
このためには:
private string title;
public string Title
{
get { return title; }
set { title = value; }
}
要する八つのキーストローク。
どのコードスニペットを自動産の名前と同じればセキーストロークで、合計)
@Domenic:ねえることができます。できないことオート。:
public string Title { get; }
または
public string Title { get; private set; }
こうすを参照している。
私の最大の便は全自動でるよう設計されているので時間を節約することも多く探しています拡大してフルに吹き物件です。
何VS2008欠である 爆発の自動産 refactor.
ているところ、 封止分野 refactorの方は働いていくだけで使用publicフィールドです。