- クラス名・変数名に迷ったら書き込むスレ。Part25 [転載禁止]©2ch.net
964 :デフォルトの名無しさん[sage]:2015/12/19(土) 21:00:09.16 ID:iJ9DwtfK - c#なのですが、タプルの拡張メソッドとして実装し、タプルを展開してメソッドに割り当てる拡張メソッドの名前を考えています。
定義は↓こんなので public static RType Assign<T1, T2, RType>(this Tuple<T1, T2> tuple, Func<T1, T2, RType> func) { return func(tuple.Item1, tuple.Item2); } 使い方は↓こんなのです。 var tuple = Tuple.Create(1, "2"); Func<int, string, string> func = (x, y) => x.ToString() + y.ToString(); var ret = tuple.Assign(func); 今は名前を.Assignとしていますが ・Pipe ・Pipeline などの方が良い気もします。 メソッドの書き方を逆にした形になるため 間に入る文字(メソッド名)はできるだけ短くできればと考えています。 なにか良い案があればお願いします。
| - クラス名・変数名に迷ったら書き込むスレ。Part25 [転載禁止]©2ch.net
974 :デフォルトの名無しさん[sage]:2015/12/19(土) 22:31:58.71 ID:iJ9DwtfK - > 965-972
皆さんありがとうございます。 いくつか案を出していただきましたのでこの中から考えてみようかと思います。 一応想定している使い方としては ↓定義 public static Tuple<T1, T2> ToTuple<T1, T2>(this T1 t1, T2 t2) { return Tuple.Create(t1, t2); } public static RType Assign<T1, T2, RType>(this Tuple<T1, T2> tuple, Func<T1, T2, RType> func) { return func(tuple.Item1, tuple.Item2); } 使い方 public int Plus(int num1, int num2) {
| - クラス名・変数名に迷ったら書き込むスレ。Part25 [転載禁止]©2ch.net
975 :デフォルトの名無しさん[sage]:2015/12/19(土) 22:36:43.15 ID:iJ9DwtfK - 途中で書き込んでしまいました。
使い方 public int Plus(int num1, int num2) { return num1 + num2; } var ret = 1.ToTuple(2) .Assign(Plus).ToTuple(3) .Assign(Plus).ToTuple(4); /* var a = Plus(1, 2); var b = Plus(a, 3); var ret = Plus(a, 4); */ 見たいにメソッドチェインにしたかっただけです。 ありがとうございました。
|
|