gpt4 book ai didi

c# - 如何在 scriptcs csx 脚本中定义扩展方法

转载 作者:可可西里 更新时间:2023-11-01 07:44:45 27 4
gpt4 key购买 nike

我正在玩 ScriptCS (太棒了!)但我想不出如何在 .csx 脚本文件中定义扩展方法

举个例子:

using System.IO;

public static class Extensions
{
public static string Remove(this string source, params string[] toRemove)
{
foreach(var r in toRemove)
{
source = source.Replace(r,"");
}
return source;
}
}

string[] entries =
Directory
.GetFiles(
@"C:\Users\blah\blah",
"*.mp4",
SearchOption.AllDirectories)
.Select( p => p.Remove("Users"))
.ToArray();

foreach(var e in entries)
{
Console.WriteLine(e);
}

这会产生错误:

error CS1109: Extension methods must be defined in a top level static class; Extensions is a nested class

我猜 ScriptCS 将 csx 包装在导致嵌套扩展的某个类中,有什么办法解决这个问题吗?

最佳答案

我感受到你的痛苦。

实际上这是 Roslyn 目前的一个限制,因为它将所有内容都包装到一个类中,即使它是另一个类也是如此。

不过,我已经与 Roslyn 团队谈过,他们很快就会支持扩展方法。

关于c# - 如何在 scriptcs csx 脚本中定义扩展方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16948562/

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