【问题标题】:Array::ConvertAll in managed C++托管 C++ 中的 Array::ConvertAll
【发布时间】:2010-12-26 13:28:02
【问题描述】:

这是this帖子的延续。

我正在尝试在托管 C++ 中解析此字符串:

String ^ rgba = "[0.09019608,0.5176471,0.9058824,1]";
cli::array<System::Double> ^ RGB = System::Array::ConvertAll<String,cli::array<System::Double> >((rgba->Substring(1,rgba->Length-2)->Split(',')),double::Parse);

编译器向我抛出以下错误:

Error   15  error C2770: invalid explicit generic argument(s) for 'cli::array<Type,dimension> ^System::Array::ConvertAll(cli::array<TInput,1> ^,System::Converter<TInput,TOutput> ^)'   

我做错了什么?

【问题讨论】:

    标签: .net arrays parsing c++-cli managed


    【解决方案1】:

    您为 ConvertAll 指定了错误的类型参数。您已指定要从字符串数组转换为双精度数组 - 它应该只是从字符串到双精度。

    PS 尽量少塞进一行会更容易阅读!

    示例

    String^ rgba = "[0.09019608,0.5176471,0.9058824,1]";
    
    array<String^>^ values = rgba->Substring(1,rgba->Length-2)->Split(',');
    
    Converter<String^, double>^ converter =
        gcnew Converter<String^, double>(double::Parse);
    
    array<double>^ RGB = Array::ConvertAll(values, converter);
    

    【讨论】:

    • 谢谢你和圣诞快乐。
    猜你喜欢
    • 1970-01-01
    • 2010-12-07
    • 2011-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-10
    • 1970-01-01
    相关资源
    最近更新 更多