我正在玩 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/