Delphi到C#问题-我不明白如何转换这个小函数



delphi代码为:

function TMyPlugin.Get_BOUIEventsSupported: OleVariant;
var
begin
result := VarArrayCreate( [ 1, 1 ], varOleStr );
result[ 1 ] := ‘TEST’;
end;

我想在C#中是这样的:

public override object BOUIEventsSupported()
{
string[] result = new string[1];
result[1] = "TEST";
}

我也试过这个:

public override object BOUIEventsSupported => base.BOUIEventsSupported;

但我不知道如何在这个版本中添加数组……我现在迷路了。

来自文档:

VarArrayCreate创建一个变量数组,其边界由边界和VarType给定的元素类型。

例如:

{ Create a variant array of 10 elements, starting at 0
and ending at 9. The array contains elements of type Ole String }
Arr := VarArrayCreate([0, 9], varOleStr); 

所以在您的例子中,您创建了一个由一个元素组成的数组,然后为该元素分配字符串TEST。

c#代码应该是:

public override object BOUIEventsSupported()
{
object[] result = new string[1];
result[1] = "TEST";
return result; 
}

这是一个愚蠢的翻译,因为这两个代码版本一开始都没有任何意义。你现在需要回答的问题是谁编写了Delphi代码?在那之前他喝了什么?

最新更新