gpt4 book ai didi

c# - 如何生成参数未知的方法?

转载 作者:行者123 更新时间:2023-11-30 14:50:16 25 4
gpt4 key购买 nike

如何生成参数未知的方法?

我使用 Microsoft.CSharp.dll 来编译 c# 脚本:

 CSharpCodeProvider provider = new CSharpCodeProvider();
CompilerParameters compilerParams = new CompilerParameters { GenerateExecutable = false, GenerateInMemory = true };
string scriptCode = GetFullCode(); //here i add usings and so on
var results = provider.CompileAssemblyFromSource(compilerParams, scriptCode);

所以,我需要添加一些函数,但是这个函数可以有任意数量的参数和类型列表(DateTime,int,等等)。

函数应该这样调用:

function(String,String,DateTime,int,...);

function(DateTime,int,String,..);

等等。

并且用户可以在代码中使用这个函数。

如何生成这个函数?作为例子,我现在告诉我如何生成代码:

//获取完整代码:

StringBuilder sb = new StringBuilder();

foreach (DictionaryEntry de in Assembles)
{
foreach (var us in de.Value.ToString().Split(new char[] { ';' }))
{
if (!string.IsNullOrWhiteSpace(us))
sb.AppendLine("using " + us + ";");
}
}

sb.AppendLine("namespace " + Namespace + "\n{");
sb.AppendLine(GetClassCode());

if(withMainFunc)
{
sb.AppendLine(@"static class Program
{

[STAThread]
static void Main()
{
//some init code
}
}");
}
sb.AppendLine("}");

最佳答案

这是一种具有可变数量参数的方法

public static string funcion(params object[] Items)
{
StringBuilder sb = new StringBuilder();
foreach (var item in Items)
{
sb.Append(item);
}
return sb.ToString(); ;
}

这会将所有给定值添加到一个字符串中。

用法:string Result = funcion(DateTime.Now, "foo", 1);

关于c# - 如何生成参数未知的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37072899/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com