using System.Linq.Expressions;
public static void Main()
Func<object[], UwU> func = GetExpression<UwU>(new Type[]{typeof(string)});
Console.WriteLine(func(new object[]{"Karam"}).Name);
public static Func<object[], T> GetExpression<T>(Type[] constructorArgs)
Expression body = Expression.New(typeof(T).GetConstructor(constructorArgs), constructorArgs.Select(a => Expression.Variable(a)));
return Expression.Lambda<Func<object[], T>>(body, Expression.Variable(typeof(object[]))).Compile();
public UwU(string name) => Name = name;
public string Name {get; init;} = "Karam";