投稿数 - 437, コメント - 52867, トラックバック - 156

ジェネリックの「戻り値型」の位置に違和感あり

仕舞いに慣れると思ってたけど、未だになれない .NET Framework のジェネリックの戻り値型の位置。戻り値型の位置は最後がお作法らしい。

例えば、

public delegate TResult System.Func<T, TResult>(
    T arg
)

理由はないけど、

public delegate TResult System.Func<TResult, T>(
    T arg
)

の方が良いと思うの私だけだろうか?

投稿日時 : 2008年1月25日 14:20

フィードバック

# re: ジェネリックの「戻り値型」の位置に違和感あり

あ、そゆ話か。タイトル見て違うことを想像した。
というのも、戻り値型が可変であるとき、

public T Hoge<T>()

ここで、Hoge<T> と書くまではTが宣言されていないので、public T の時点でインテリセンスが働いて、勝手にTで始まる型に補完されてしまうのが激しくイラつくんです。
2008/01/25 14:25 | シャノン

# re: ジェネリックの「戻り値型」の位置に違和感あり

あ~、言われてみれば、確かにイラつきますね。
2008/01/25 14:29 | 囚人

# re: ジェネリックの「戻り値型」の位置に違和感あり

>Func<T, TResult>
にはたしかに違和を感じます
2008/01/25 15:58 | アキラ

# re: ジェネリックの「戻り値型」の位置に違和感あり

アキラさんならそう仰ると思ってましたよ!
だって、boost.function が逆だからw
2008/01/25 16:09 | 囚人

# re: ジェネリックの「戻り値型」の位置に違和感あり

アキラさんならそう仰ると思ってましたよ!
だって、boost.function が逆だからw
2008/01/25 16:09 | 囚人

# re: ジェネリックの「戻り値型」の位置に違和感あり

どっちも同意w>囚人の人&シャノンの人
2008/01/25 18:34 | 渋木宏明(ひどり)

# re: ジェネリックの「戻り値型」の位置に違和感あり

>戻り値型の位置は最後がお作法らしい。

コンマを取っ払って,矢印と思えば,多くの関数型言語での関数の型定義と順序が同じですね.

http://research.microsoft.com/projects/fsharp/manual/FSharp.Core/Microsoft.FSharp.Collections.type_List.html
>member ForAll : ('a -> bool) -> bool

Func< Func<T, bool>, bool> ForAll;
2008/01/25 18:50 | NyaRuRu

# [.NET]System.Func, 型の順序,矢印

『ジェネリックの「戻り値型」の位置に違和感あり - 囚人のジレンマな日々』より. 仕舞いに慣れると思ってたけど、未だになれない .NET Framework のジェネリックの戻り値型の位置。戻り値型の位置は最後がお作法らしい。 例えば、 public delegate TResult System.Func&amp;#6
2008/01/25 19:58 | NyaRuRuの日記

# re: ジェネリックの「戻り値型」の位置に違和感あり

Input、Output の順って考えるとむしろ自然に見えてきませんか?と言ってみるw
コンバータの定義 : Converter<TInput, TOutput>
I/Oって略すし、入力があって出力があるものだし。

ところでシャノンさんに激同。
2008/01/25 21:16 | siokoshou

# re: ジェネリックの「戻り値型」の位置に違和感あり

>NyaRuRuさん

関数型言語をめったに使わないから分かんないですけど、そういう考えありですね。


>siokoshouさん

お、納得です。若干気持ち悪さがなくなりそうです。
2008/01/26 0:01 | 囚人

# re: ジェネリックの「戻り値型」の位置に違和感あり

out パラメータはパラメータの並び上で最後がお作法だったりしますし、Output Parameter と Return Value での交換可能性を言えば末尾がしっくり来るのですよね。
2008/01/26 0:22 | 菊池

# re: ジェネリックの「戻り値型」の位置に違和感あり

>out パラメータはパラメータの並び上で最後がお作法だったりしますし、Output Parameter と Return Value での交換可能性を言えば末尾がしっくり来るのですよね。

あ~これ一番納得する理由かもしれません。
2008/01/28 9:08 | 囚人

# nugjbcjkznca

is erythromycin a sulfa drug https://erythromycin1m.com/#
2022/06/01 1:54 | jyjtqvmd

コメントの投稿

タイトル
名前
URL
コメント