我有一个函数可以将一个字符串解析为两个字符串。在 C# 中,我会这样声明:
void ParseQuery(string toParse, out string search, out string sort)
{
...
}
我会这样称呼它:
string searchOutput, sortOutput;
ParseQuery(userInput, out searchOutput, out sortOutput);
当前项目必须在 C++/CLI 中完成。我试过了
using System::Runtime::InteropServices;
...
void ParseQuery(String ^ toParse, [Out] String^ search, [Out] String^ sort)
{
...
}
但如果我这样称呼它:
String ^ searchOutput, ^ sortOutput;
ParseQuery(userInput, [Out] searchOutput, [Out] sortOutput);
我得到一个编译器错误,如果我这样称呼它:
String ^ searchOutput, ^ sortOutput;
ParseQuery(userInput, searchOutput, sortOutput);
然后我在运行时遇到错误。我应该如何声明和调用我的函数?