/// <summary> /// 设置当前Unit值的参数,这里将不会立即执行 /// 将会忽略Unit的Name属性 /// </summary> /// <param name="args"></param> public virtual void Set(params Unit[] args) { // 如果传入的是字符串 if (args != null && args.Length >= 1 && args[0].GetValue().Data is string) { var code = args[0].GetValue().Data as string; VarMap.Set("source", VarData.New(code)); // source 用来保存源代码以及所在的位置,这里暂时只保存源代码 IsInit = true; } else { throw new NotImplementedException("Set 函数没有实现"); } }
public override Unit Run(params Unit[] args) { // 参数解析 VarData[] values = new VarData[args.Length]; for (int i = 0; i < values.Length; i++) { values[i] = args[i].GetValue(); } // 缓存参数 VarMap.Set("arguments", new VarData { //Type = values.GetType(), Kind = "Array[Unit]", Data = values }); // 函数执行 return(base.Run(args)); }