Hatena::Groupsubtech

ういはるかぜの化学

Sunday, July 13, 2008

ゆの in C# (.NET Framework 3.5) 01:14  ゆの in C# (.NET Framework 3.5) - ういはるかぜの化学 を含むブックマーク はてなブックマーク -  ゆの 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;
        }
    }
}

zeclzecl2008/07/14 01:58ゆの in C#(.NET Framework 3.5)拝見しました。素敵です。
これを機にLINQ勉強しようと思います。