- 107 名前:デフォルトの名無しさん mailto:sage [2015/10/06(火) 07:30:25.83 ID:7FNxeZR/.net]
- 質問0
yieldを使って実装されている。難しくないからやってみたらいい。 質問1 合っている。 質問2 >引数として、Func<TSource, IEnumerable<TResult>>ビルトインデリゲートのみを採っている。 これは間違い。thisパラメータはextensionmethodを呼ぶときに.(ドット)の左側の値が暗黙的に渡る以外は普通の引数。 >メソッド名extendmethodのすぐあとにある<TSorce, TResult> って何なのでしょうか。 ジェネリックの型パラメータ。List<T>の<T>と同じで、「任意の型に置き換えられる」ことをコンパイラに指示している。 hoge.extensionmethod(x => x.y) として呼び出したとき、hogeがIEnumerable<Hoge>型であれば、 コンパイラはTSourceにHogeが暗黙的に指定されたと推論する。 同様に、x.yがint型であればTSourceの型はint型になる。 型引数はもちろん手動で hoge.extensionmethod<Hoge, int>( と指定することもできる。
|

|