/// <summary> /// 执行变量 /// </summary> /// <param name="txt">原始字符串</param> /// <param name="ParameterValues">保存参数的列表</param> /// <returns>处理后的字符串</returns> public string Execute(string txt, System.Collections.ArrayList ParameterValues) { if (this.myVariables == null) { throw new System.InvalidOperationException("未设置 Variables 属性"); } if (txt == null || txt.Length == 0) { return(txt); } string[] strItems = AnalyseVariableString(txt, strVariablePrefix, strVariableEndfix); if (strItems == null) { return(null); } System.Text.StringBuilder myStr = new System.Text.StringBuilder(); for (int iCount = 0; iCount < strItems.Length; iCount++) { if ((iCount % 2) == 0) { myStr.Append(strItems[iCount]); } else { string strName = strItems[iCount]; bool bolParameter = strName.StartsWith("@"); if (bolParameter) { strName = strName.Substring(1); } string strValue = null; if (myVariables.Exists(strName)) { strValue = myVariables.Get(strName); } else { strValue = ""; } if (ParameterValues != null && bolParameter) { ParameterValues.Add(strValue); myStr.Append(" ? "); } else { myStr.Append(strValue); } } } return(myStr.ToString()); }