尝试使用方括号语法设置密钥...
request->Headers["Accept-Encoding"] = "gzip, deflate";
我收到以下错误:
IntelliSense: no instance of overloaded function "System::Net::WebHeaderCollection::set" matches the argument list
argument types are: (const char [16], const char [14])
object type is: System::Net::WebHeaderCollection ^
明确传入String^
参数时......
request->Headers[gcnew String("Accept-Encoding")] = gcnew String("gzip, deflate");
我明白了:
IntelliSense: no instance of overloaded function "System::Net::WebHeaderCollection::set" matches the argument list
argument types are: (System::String ^, System::String ^)
object type is: System::Net::WebHeaderCollection ^
然而,
request->Headers->Set("Accept-Encoding", "gzip, deflate");
工作正常。那么这里发生了什么?
答案 0 :(得分:1)
您的代码的所有三个版本都可以编译和运行,因此这看起来就像是一个Intellisense错误。我可以在任何具有重载索引器的类中重现它,其setter可以采用Int32或String ^ index参数。我发现Intellisense在C ++ / CLI中非常不稳定,所以这可能是你会发现的许多瑕疵中的第一个。
考虑将问题报告给https://connect.microsoft.com/