某スレで C# 3.0 の話題が出ていました。 こんな構文が可能になるらしい(多分)
using System; using System.Collections.Generic; using System.Query; using MyExtension; namespace MyExtension { static class Extension1 { public static IEnumerableFilter (this IEnumerable data, Func func) { foreach (T d in data) { if (func(d)) yield return d; } } public static void Trace (this IEnumerable data) { foreach (T d in data) { Console.WriteLine(d); } } } } class Test { static void Main() { var arr1 = new { 1, 2, 3, 4, 5 }; // 従来の呼び出し方 var result1 = Extension1.Filter(arr1, n => n < 3); Extension1.Trace(result1); var arr2 = new { "mona", "giko", "sii" }; // Extension Methodでの呼び出し方 var result2 = arr2.Filter(s => s.Contains("i")); result2.Trace(); } }
いやもう何がなんだか…(苦笑
気持ち程度しか読めん…… orz
え、掃除中じゃなかったのかって?
いやちょっと、FDのイメージ化してたりしまして……。フロッピ最強。うむ!