拡張メソッドを使用して ac# ステートメントをチェーンし、次のように jQuery のようにすることを考えています。
foo foo2 =
new foo().Title(foo1.Title)
.Name(foo1.Name)
.DoSomeStuff()
.DoSomeMoreStuff();
これは良い/悪い考えですか?
public class foo
{
public string Title {get;set;}
public string Name {get;set;}
public int Age {get;set;}
public foo(){}
}
public static class fooExtension
{
public static foo Title(this foo source, string title)
{
source.Title = title;
return source;
}
//and other extensions
}
Upadate: 私がこれを検討している「理由」としての詳細な説明。 私は2つのことをしています:
- あるオブジェクトからデータを取得し、それを使用して別のオブジェクトのプロパティを設定しています。
- これらのプロパティに対して何らかのアクションを実行する必要があります。
だから私の最初のコードはもっと似ていた
foo2.bars = foo1.bars;
foo2.RemoveUnderage();
foo2.NotifyPatronsBarsAreFull();
代わりに、次のように記述した方がわかりやすいかもしれないと考えました。
foo2.bars(foo1.bars).RemoveUnderage().NotifyPatrons();
イニシャライザは優れていますが、プロパティもすべてまとめてバンドルしているため、プロパティ セットを、実行するアクションに近づけたいと考えました。