繁体   English   中英

在 JScript.NET 中强制使用特定的 .NET 类型?

[英]Forcing specific .NET types in JScript.NET?

我正在使用 Fiddler Web 调试器,它使用基于 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); ahraw.Split(", ", 99, System.StringSplitOptions.RemoveEmptyEntries); 它仍然可以找到多种方法。 是否可以强制使用特定的 .NET 类型? 类似var sep: String东西也不起作用。

当然,还有其他方法可以在 JScript 中拆分字符串,例如 split()(注意小写的 s)。 我更感兴趣的是当我需要调用的函数没有等效的 javascript 时如何解决这个问题,所以我必须调用一个 .NET 函数。

正如评论中提到的,现在将 C# 用作脚本语言可能会更容易(可以在Tools -> Options -> Scripting -> Language )。

但是,如果您已经/想要坚持使用 JScript.NET(例如,如果您已经进行了复杂的自定义),您可以通过为分隔符声明类型化数组来解决该问题,否则编译器无法区分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] + "\"");
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM