using Microsoft.ClearScript; using System; using System.Reflection; namespace BetterGenshinImpact.Core.Script.Dependence; public class CustomHostFunctions : HostFunctions { /// /// 创建指定维度的交错数组变量 /// /// 数组元素类型 /// 数组维度 /// 交错数组变量 public object NewVarOfArr(int dimensions) { try { Type arrayType = typeof(T); for (int i = 0; i < dimensions; i++) { arrayType = arrayType.MakeArrayType(); } MethodInfo newVarMethod = typeof(HostFunctions).GetMethod(nameof(newVar))!; MethodInfo genericMethod = newVarMethod.MakeGenericMethod(arrayType); return genericMethod.Invoke(this, new object?[] { null })!; } catch (Exception ex) { throw new InvalidOperationException($"创建维度为 {dimensions} 的数组失败: {ex.Message}", ex); } } }