コード例 #1
0
            /// <inheritdoc />
            public override DynamicMetaObject BindConvert(ConvertBinder binder)
            {
                var restrictions = BindingRestrictions.GetTypeRestriction(Expression, LimitType);

                if (binder.Type == LimitType)
                {
                    return(binder.FallbackConvert(new DynamicMetaObject(Expression, restrictions, Value)));
                }

                var method = CachedMethods.GetOrAdd(binder.Type, t => GetAsMethod(t, false));
                var call   = Expression.Call(Expression.Convert(Expression, LimitType), method);

                return(new DynamicMetaObject(call, restrictions));
            }
コード例 #2
0
ファイル: class.cs プロジェクト: fvalette/mono
		public void Mark_HasGetHashCode ()
		{
			cached_method |= CachedMethods.GetHashCode;
		}
コード例 #3
0
ファイル: class.cs プロジェクト: fvalette/mono
		public void Mark_HasEquals ()
		{
			cached_method |= CachedMethods.Equals;
		}