Sunday, July 13, 2008
■ ゆの in C# (.NET Framework 3.5)

Expression使ったりして演算子オーバーロードとかナシでやってみた。
using System; using System.Linq.Expressions; namespace Yuno { class Program { static void Main(string[] args) { ゆのっち = (x, _, 来週も見てくださいね) => x / _ / x < 来週も見てくださいね ; } static Expression<Func<Int32, Int32, Int32, Boolean>> ゆのっち { set { var binExp = (BinaryExpression)value.Body; // Left < Right var leftExp = (BinaryExpression)binExp.Left; // (x / _ / x) var newDivExp = Expression.Divide(leftExp.Left, Expression.Call(typeof(Program), "x", null, value.Parameters[0])); var newExp = Expression.GreaterThan(newDivExp, binExp.Right); var newLambda = Expression.Lambda<Func<Int32, Int32, Int32, Boolean>>(newExp, value.Parameters); newLambda.Compile().Invoke(365, 1, 1); Console.WriteLine(((ParameterExpression)(binExp.Right)).Name); } } static Int32 x(Int32 x) { Console.Write("ひだまりスケッチ×{0} ", x); return x; } } }
トラックバック - http://subtech.g.hatena.ne.jp/mayuki/20080713
これを機にLINQ勉強しようと思います。