尽我所能,我无法将此托管 C++ 代码转换为 C++/CLI。有人可以指点一下(双关语)吗?
static String *ignoreStrings[];
稍后在代码中,调用了 Add(string) 方法。在其他地方,在一些 C# 代码中,
new String[]{"foo", "bar"}
被传递给一个函数,该函数以某种方式转换为上面的 ignoreStrings 类型。
我试过这种语法:
static array<String^> ^ignoreStrings;
但它不能从那个 C# 数组中强制转换,而且它也没有 add 方法。
编辑:更完整的代码,希望这能以某种方式改变问题......
private:
static String *ignoreStrings[];
public:
void AddIgnoreString(String *ignore)
{
AddOneIgnoreString(ignore);
}
void SetIgnoreStringData(String *ignore[])
{
SetIgnoreStrings(ignore);
}
static void SetIgnoreStrings(String *ignore[])
{
ignoreStrings = ignore;
}
static void AddOneIgnoreString(String ^ignore)
{
ignoreStrings->Add(ignore);
}
在其他地方,从 C# 代码进行此调用:
SetIgnoreStrings(new String[]{"foo", "bar"});
这就是我试图将 C++ 代码转换为:
private:
static array<String^> ^ignoreStrings;
public:
virtual void AddIgnoreString(String ^ignore)
{
AddOneIgnoreString(ignore);
}
virtual void SetIgnoreStringData(array<String^> ^ignore)
{
SetIgnoreStrings(ignore);
}
static void SetIgnoreStrings(array<String^> ^ignore)
{
ignoreStrings = ignore;
}
static void AddOneIgnoreString(String ^ignore)
{
ignoreStrings->Add(ignore);
}
static array<String^> ^GetIgnoreStrings()
{
return ignoreStrings;
}