在 JScript.NET 中强制使用特定的 .NET 类型?
Forcing specific .NET types in JScript.NET?
我正在使用 Fiddler 网络调试器,它使用基于 JScript.NET 的 FiddlerScript。我正在尝试进行一些简单的 .NET 字符串解析,但它失败并出现错误“不止一种方法或 属性 匹配此参数列表 ”。例如:
var ahraw: String = "one, two, three, four";
var ah: Array = ahraw.Split([',', ' '], System.StringSplitOptions.RemoveEmptyEntries);
for (var i in ah) {
FiddlerObject.alert("\"" + ah[i] + "\"");
}
String.Split 有这些原型:
Split(Char[], Int32, StringSplitOptions)
Split(String[], Int32, StringSplitOptions)
Split(String[], StringSplitOptions)
Split(Char[], StringSplitOptions)
Split(Char[], Int32)
Split(Char[])
即使我添加一个 Int32 和 运行 它像 ahraw.Split([',', ' '], 99, System.StringSplitOptions.RemoveEmptyEntries);
或 ahraw.Split(", ", 99, System.StringSplitOptions.RemoveEmptyEntries);
它仍然找到多个方法。是否可以强制使用特定的 .NET 类型? var sep: String
之类的东西也不起作用。
当然还有其他方法可以在 JScript 中拆分字符串,例如 split()(注意小写的 s)。当我需要调用的函数没有 javascript 等效项时,我更感兴趣的是如何解决这个问题,因此我必须调用 .NET 函数。
如评论中所述,如今仅使用 C# 作为脚本语言可能会更容易(可以在 Tools -> Options -> Scripting -> Language
中设置)。
如果您 have/want 坚持使用 JScript.NET(例如,如果您已经有复杂的定制),您可以通过为分隔符声明 typed array 来解决这个问题,否则编译器无法区分调用 Split(String[], StringSplitOptions)
和 Split(Char[], StringSplitOptions)
重载中的哪一个。
var ahraw: String = "one, two, three, four";
var separators: Char[] = [',', ' '];
var ah: Array = ahraw.Split(separators, System.StringSplitOptions.RemoveEmptyEntries);
for (var i in ah) {
FiddlerObject.alert("\"" + ah[i] + "\"");
}
我正在使用 Fiddler 网络调试器,它使用基于 JScript.NET 的 FiddlerScript。我正在尝试进行一些简单的 .NET 字符串解析,但它失败并出现错误“不止一种方法或 属性 匹配此参数列表 ”。例如:
var ahraw: String = "one, two, three, four";
var ah: Array = ahraw.Split([',', ' '], System.StringSplitOptions.RemoveEmptyEntries);
for (var i in ah) {
FiddlerObject.alert("\"" + ah[i] + "\"");
}
String.Split 有这些原型:
Split(Char[], Int32, StringSplitOptions)
Split(String[], Int32, StringSplitOptions)
Split(String[], StringSplitOptions)
Split(Char[], StringSplitOptions)
Split(Char[], Int32)
Split(Char[])
即使我添加一个 Int32 和 运行 它像 ahraw.Split([',', ' '], 99, System.StringSplitOptions.RemoveEmptyEntries);
或 ahraw.Split(", ", 99, System.StringSplitOptions.RemoveEmptyEntries);
它仍然找到多个方法。是否可以强制使用特定的 .NET 类型? var sep: String
之类的东西也不起作用。
当然还有其他方法可以在 JScript 中拆分字符串,例如 split()(注意小写的 s)。当我需要调用的函数没有 javascript 等效项时,我更感兴趣的是如何解决这个问题,因此我必须调用 .NET 函数。
如评论中所述,如今仅使用 C# 作为脚本语言可能会更容易(可以在 Tools -> Options -> Scripting -> Language
中设置)。
如果您 have/want 坚持使用 JScript.NET(例如,如果您已经有复杂的定制),您可以通过为分隔符声明 typed array 来解决这个问题,否则编译器无法区分调用 Split(String[], StringSplitOptions)
和 Split(Char[], StringSplitOptions)
重载中的哪一个。
var ahraw: String = "one, two, three, four";
var separators: Char[] = [',', ' '];
var ah: Array = ahraw.Split(separators, System.StringSplitOptions.RemoveEmptyEntries);
for (var i in ah) {
FiddlerObject.alert("\"" + ah[i] + "\"");
}