有如下代码
public static void RunPythonScript(string sArgName,
string args = "", params string[] teps)
{
Process p = new Process();
string path = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase + sArgName;// 获得python文件的绝对路径(将文件放在c#的debug文件夹中可以这样操作)
path = @"C:\Users\user\Desktop\test\"+sArgName;//(因为我没放debug下,所以直接写的绝对路径,替换掉上面的路径了)
p.StartInfo.FileName = @"D:\Python\envs\python3\python.exe";//没有配环境变量的话,可以像我这样写python.exe的绝对路径。如果配了,直接写"python.exe"即可
string sArguments = path;
foreach (string sigstr in teps)
{
sArguments += " " + sigstr;//传递参数
}
}
其中定义了params string[] 类型的变量,之前没见过。查阅资料
params 是数组型参数,根据实参形式选择引用传递或值传递,包含数量可变的参数。也就是说,该方法可以接收单个实体,也可以接收实体数组。也就不需要重载方法了。
有例子定义了一个函数
public string GetByCriteria(params string[] strs)
{
string result = string.Empty;
foreach (string str in strs)
{
//执行代码
}
return result;
}
//单个实体
this.GetByCriteria("test");
//数组
string[] strs = new string[]{"test","test1"};
this.GetByCriteria(strs);
参考链接: link.