private dynamic _createKey() { dynamic key = new ExpandoObject(); key.b = (Func<string, int>)( p1 => p1.Length ); key.r = (Func<double, int>)( p1 => (int)Math.Floor( p1 ) ); key.i = (Func<int, int>)( p1 => key.r( rand.NextDouble() * p1 ) ); key.j = (Func<int>)( () => 8 ); key.k = (Func<double, double, double>)( ( p1, p2 ) => (int)p1 ^ (int)p2 ); key.l = (Func<string, int, int, double>)( ( p1, p2, p3 ) => { double d; if ( double.TryParse( p1.substr( p2, p3 ), out d ) ) { return d; } return double.NaN; } ); key.m = (Func<double, double, double>)( ( p1, p2 ) => p1 - p2 ); key.n = (Func<double>)( () => key.r( DateTime.Now.getTime() / 1000 ) ); key.o = (Func<double, double, double>)( ( p1, p2 ) => p2 / p1 ); key.p = (Func<double, double, double>)( ( p1, p2 ) => p2 % p1 ); key.q = (Func<double>)( () => 1.44269504088896 ); key.s = (Func<object, string>)( p1 => p1.ToString() ); key.t = (Func<object[], string>)( ps => string.Join( "", ps ) ); key.u = (Func<double, double, double>)( ( p1, p2 ) => p1 + p2 ); key.v = (Func<int>)( () => 16 ); key.w = (Func<int>)( () => 2 ); key.x = (Func<int>)( () => 4 ); key.y = (Func<int, double>)( p1 => Math.Sqrt( p1 ) ); key.z = (Func<double, double, double>)( ( p1, p2 ) => p1 * p2 ); return ( key ); }