public static void OpenDelegateForProperty()
        {
            var d = DelegateHelpers.CreateOpenDelegate <Func <string, int> >(str => str.Length);

            NotNull(d);
            Equal(4, d("abcd"));
        }
        public static void OpenDelegate()
        {
            var d = DelegateHelpers.CreateOpenDelegate <Func <string, char, int, int> >((str, ch, startIndex) => str.IndexOf(ch, startIndex));

            NotNull(d);
            Equal(1, d("abc", 'b', 0));
        }
        public static void OpenDelegateConversion()
        {
            var d = DelegateHelpers.CreateOpenDelegate <Func <decimal, long> >(i => (long)i);

            Equal(42L, d(42M));
        }