private static Func <T, int> MakeGetHashCodeNotNull <T>() where T : struct { var param = Expression.Parameter(typeof(T), "input"); return(Expression.Lambda <Func <T, int> >(NullSafetyExpression.Create(param, p => p.Call(nameof(GetHashCode))), param).Compile()); }
private static Func <T, string> MakeToString <T>() { var param = Expression.Parameter(typeof(T), "input"); return(Expression.Lambda <Func <T, string> >(NullSafetyExpression.Create(param, p => p.Call(nameof(ToString))), param).Compile()); }