私は開発中のアプリケーションを経由してきましたが、それは不変性を重視しています。私はちょうどゲッター専用の自動プロパティがC#6.0にあることを発見したので、それらを使用するためにリファクタリングしています。私は可能な疑問符を打ちました。これは、private IList<T>
オブジェクトを公開プロパティを介してReadOnlyCollection<T>
として公開しているため、元のList<T>
オブジェクトにキャストされる可能性を避けるためです。この不変プロパティをautoプロパティに変換できますか?
private IList<string> tags = new List<string>();
public IEnumerable<string> Tags => new ReadOnlyCollection<string>(this.tags);
カスタマイズされたゲッターのこのタイプの自動プロパティを使用する方法はありますか?
ゲッターにコードがあるため、自動プロパティにすることはできません。問題は何が間違っているのですか?なぜあなたはオートプロパティが必要ですか? – Sinatr
これは、自動プロパティではありません。一般的なコードスタイルに合わせるかどうかは不思議です。 – James
* "一般的なコードスタイル" * - 自動プロパティのみまたは完全なプロパティのみを使用するものはありません。 Btw、getter only property * immutable *を呼び出すと、毎回何かの**新しいインスタンス**が公開されると間違っていると感じます。コンストラクタでそのプロパティを初期化すると、実際には(getterのみで)自動プロパティを使用できます。 – Sinatr