C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[6]: メソッド名の相談


(過去ログ 92 を表示中)

[トピック内 19 記事 (1 - 19 表示)]  << 0 >>

■54880 / inTopicNo.1)  メソッド名の相談
  
□投稿者/ aetos (333回)-(2010/11/08(Mon) 11:34:13)

分類:[C#] 

名前をつけるときって(対象が何であれ)悩みませんか。
# RPG キャラの名前を付けるのに1日かけるとかザラにある…

「オブジェクトのコレクションから、そのオブジェクトの何らかのプロパティ値の比較によって、最大のプロパティ値を持つオブジェクトを抽出する」というメソッドを作ろうと思っています。

プロトタイプはこんなイメージです。
ここでは比較に使うプロパティの型を int にしていますが、Enumerable.Max に倣って、一通りの型は用意します。

public static TSource Foo<TSource>(this IEnumerable<TSource> source, Func<TSource, int> selector);

で、これは、戻り値の型が TSource であることを除けば、Enumerable.Max と同じなので、名前を Max にすることができません。
http://msdn.microsoft.com/ja-jp/library/bb535031.aspx

このメソッド名を何にしたらいいと思いますか?
よろしくお願いします。
引用返信 編集キー/
■54881 / inTopicNo.2)  Re[1]: メソッド名の相談
□投稿者/ shu (157回)-(2010/11/08(Mon) 11:40:35)
No54880 (aetos さん) に返信
> 名前をつけるときって(対象が何であれ)悩みませんか。
> # RPG キャラの名前を付けるのに1日かけるとかザラにある…
>
> 「オブジェクトのコレクションから、そのオブジェクトの何らかのプロパティ値の比較によって、最大のプロパティ値を持つオブジェクトを抽出する」というメソッドを作ろうと思っています。
>
> プロトタイプはこんなイメージです。
> ここでは比較に使うプロパティの型を int にしていますが、Enumerable.Max に倣って、一通りの型は用意します。
>
> public static TSource Foo<TSource>(this IEnumerable<TSource> source, Func<TSource, int> selector);
>
> で、これは、戻り値の型が TSource であることを除けば、Enumerable.Max と同じなので、名前を Max にすることができません。
> http://msdn.microsoft.com/ja-jp/library/bb535031.aspx
>
> このメソッド名を何にしたらいいと思いますか?
> よろしくお願いします。

プロパティ名をProp1として
MaxByProp1
はどうでしょう?
引用返信 編集キー/
■54882 / inTopicNo.3)  Re[2]: メソッド名の相談
□投稿者/ aetos (334回)-(2010/11/08(Mon) 11:53:05)
No54881 (shu さん) に返信
> プロパティ名をProp1として
> MaxByProp1
> はどうでしょう?

ありがとうございます。

どのプロパティで比較するかは selector によって指定できる(別にプロパティでなくても実は構わない)ので、メソッド名にプロパティ名は入れられません。
が、MaxBy は第一候補とさせていただきます。
引用返信 編集キー/
■54883 / inTopicNo.4)  Re[2]: メソッド名の相談
□投稿者/ かたぎり (44回)-(2010/11/08(Mon) 11:54:21)
ベタに名づけてみたw

GetMaxInSouce

引用返信 編集キー/
■54888 / inTopicNo.5)  Re[3]: メソッド名の相談
□投稿者/ aetos (335回)-(2010/11/08(Mon) 15:54:55)
2010/11/08(Mon) 15:56:49 編集(投稿者)

No54883 (かたぎり さん) に返信
> ベタに名づけてみたw
>
> GetMaxInSouce

それ、名前の情報量的には Enumerable.Max と同じじゃないですかね。
Max との差別化が図れてない印象。
引用返信 編集キー/
■54890 / inTopicNo.6)  Re[4]: メソッド名の相談
□投稿者/ よねKEN (630回)-(2010/11/08(Mon) 17:35:42)
No54888 (aetos さん) に返信
> ■No54883 (かたぎり さん) に返信
>>ベタに名づけてみたw
>>
>>GetMaxInSouce
>
> それ、名前の情報量的には Enumerable.Max と同じじゃないですかね。
> Max との差別化が図れてない印象。

ポイントは「selectorが返す指標となる数値ではなくオブジェクトそのものを返す」というところですよね?

格好よさに欠けますが(というかださいですが)、以下のような名前はどうでしょう。

・MaxObject
・GetMaxObject
・GetMaxElement
・Maxなオブジェクトを返します

#やっぱりいまいち
引用返信 編集キー/
■54892 / inTopicNo.7)  Re[5]: メソッド名の相談
□投稿者/ aetos (336回)-(2010/11/08(Mon) 18:39:22)
No54890 (よねKEN さん) に返信
> ポイントは「selectorが返す指標となる数値ではなくオブジェクトそのものを返す」というところですよね?

ですです。

> 格好よさに欠けますが(というかださいですが)、以下のような名前はどうでしょう。
>
> ・MaxObject
> ・GetMaxObject
> ・GetMaxElement
> ・Maxなオブジェクトを返します

えーと…4つ目は置いといて。

Enumerable.Max が GetMax ではないので、こっちも GetXXX にはしたくないかな、と。
拡張メソッドって Get つかないですよね、基本的に。

MaxObject も、やっぱり、この場合の Object って名前の情報量的に軽い感じです。
Enumerable.Max も MaxObject と言えないこともないと思いますし。
引用返信 編集キー/
■54893 / inTopicNo.8)  Re[1]: メソッド名の相談
□投稿者/ ゆう@ (4回)-(2010/11/08(Mon) 19:01:21)
Enumerable.Maxの拡張ってことで、
MaxEx(Extension)とか・・・
引用返信 編集キー/
■54899 / inTopicNo.9)  Re[2]: メソッド名の相談
□投稿者/ まりも (1回)-(2010/11/08(Mon) 23:24:57)
まりも さんの Web サイト
Maxとの差が直感的にわかる名前をつける必要がありますね。

英語は苦手なのでまず日本語で考えてみます。
Maxが「最大の〜」なのに対して、
「最大の〜を持つ」という感じになりますかね。

あとは、英語に詳ければすらっと出てくるのでしょうが。
はて。
WithMaxOf
とかになるのでしょうか。
日本人英語な気もしますが。
引用返信 編集キー/
■54901 / inTopicNo.10)  Re[2]: メソッド名の相談
□投稿者/ aetos (337回)-(2010/11/09(Tue) 01:09:32)
No54893 (ゆう@ さん) に返信
> Enumerable.Maxの拡張ってことで、
> MaxEx(Extension)とか・・・

んー。
Max のすごいやつじゃないんですよね。
親分じゃなくて兄弟分みたいな感じというか。
引用返信 編集キー/
■54902 / inTopicNo.11)  Re[3]: メソッド名の相談
□投稿者/ aetos (338回)-(2010/11/09(Tue) 01:19:10)
No54899 (まりも さん) に返信
> Maxとの差が直感的にわかる名前をつける必要がありますね。
>
> 英語は苦手なのでまず日本語で考えてみます。
> Maxが「最大の〜」なのに対して、
> 「最大の〜を持つ」という感じになりますかね。

そうなのです。
「最大の〜を持つ」とか「〜による最大」とか。

「最大」と「持つ」を英語にすると「HasMax」…って、なんか「東MAX」みたいになりましたね。
excite 翻訳によれば「最大の値を持つ」は「It has the maximum value.」だそうで。「HasMax」もあながち外れじゃないのかも。
「値が最大であるオブジェクト」は「Object with the maximum value.」だそうです。「WithMax」もあり? Of は要らないような。
引用返信 編集キー/
■54903 / inTopicNo.12)  Re[1]: メソッド名の相談
□投稿者/ aetos (339回)-(2010/11/09(Tue) 01:21:59)
No54880 (aetos さん) に返信

String.IndexOfAny とか、
http://msdn.microsoft.com/ja-jp/library/11w09h50.aspx
メソッド名が「IndexOfAny」で、引数名が「anyOf」なんですね。
で、「Index of any of values」とでもすると、「いずれかの値のインデックス」という一続きの英文になる。
こんな感じの命名をしたいですよね。
引用返信 編集キー/
■54907 / inTopicNo.13)  Re[3]: メソッド名の相談
□投稿者/ 茶々です (1回)-(2010/11/09(Tue) 10:40:33)
No54901 (aetos さん) に返信
> んー。
> Max のすごいやつじゃないんですよね。
> 親分じゃなくて兄弟分みたいな感じというか。
BrMax。。。orz
引用返信 編集キー/
■54908 / inTopicNo.14)  Re[4]: メソッド名の相談
□投稿者/ aetos (340回)-(2010/11/09(Tue) 12:40:16)
No54907 (茶々です さん) に返信
> ■No54901 (aetos さん) に返信
>>んー。
>>Max のすごいやつじゃないんですよね。
>>親分じゃなくて兄弟分みたいな感じというか。
> BrMax。。。orz

これのことかっ!
http://bit.ly/c2wqra
引用返信 編集キー/
■54910 / inTopicNo.15)  Re[2]: メソッド名の相談
□投稿者/ ちゃっぴ (49回)-(2010/11/09(Tue) 13:13:35)
ちゃっぴ さんの Web サイト
MaxBy でいいんでないかい?

List.maxBy<'T,'U> 関数 (F#)
http://msdn.microsoft.com/ja-jp/library/ee340331.aspx
引用返信 編集キー/
■54911 / inTopicNo.16)  Re[3]: メソッド名の相談
□投稿者/ aetos (341回)-(2010/11/09(Tue) 13:27:51)
No54910 (ちゃっぴ さん) に返信
> MaxBy でいいんでないかい?
>
> List.maxBy<'T,'U> 関数 (F#)
> http://msdn.microsoft.com/ja-jp/library/ee340331.aspx

おお、なんか決まり手っぽいですね! F#読めませんけど…
引用返信 編集キー/
■54921 / inTopicNo.17)  Re[4]: メソッド名の相談
□投稿者/ aetos (342回)-(2010/11/09(Tue) 19:54:14)
No54911 (aetos さん) に返信
> ■No54910 (ちゃっぴ さん) に返信
>>MaxBy でいいんでないかい?
>>
>>List.maxBy<'T,'U> 関数 (F#)
>>http://msdn.microsoft.com/ja-jp/library/ee340331.aspx
>
> おお、なんか決まり手っぽいですね! F#読めませんけど…

とりあえず MaxBy にし、解決とします。
皆様、ありがとうございました。

「もっといいのがあるよ!」という場合はぜひお願いします。
解決済み
引用返信 編集キー/
■54980 / inTopicNo.18)  Re[5]: メソッド名の相談
□投稿者/ aetos (343回)-(2010/11/12(Fri) 12:18:55)
No54921 (aetos さん) に返信

# 作った後で Rx に(名前まで)同じものがあるのに気付いたー!
# 破棄!
引用返信 編集キー/
■54998 / inTopicNo.19)  Re[6]: メソッド名の相談
□投稿者/ ちゃっぴ (50回)-(2010/11/12(Fri) 22:53:27)
ちゃっぴ さんの Web サイト
No54980 (aetos さん) に返信
> # 作った後で Rx に(名前まで)同じものがあるのに気付いたー!
> # 破棄!

最大限の祝福を送りますw
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -