在我的C#应用程序中,我通过回调/委托接收到一个指向C++结构的指针。我不确定
现在我想传递一个对该结构的引用以进行进一步处理。
class
是否可行,但是将C++指针强制转换为适当的C#结构可以正常工作,因此我使用C#结构来存储数据。现在我想传递一个对该结构的引用以进行进一步处理。
- 我不能使用
class
,因为它可能无法完全“映射”到C++结构。 - 我不想复制结构以获得更好的延迟。
这个例子演示了结构体是按值传递而不是按引用传递的:
using System;
namespace TestStruct
{
struct s
{
public int a;
}
class Program
{
static void Main(string[] args)
{
s s1 = new s
{
a = 1
};
Foo(s1);
Console.WriteLine("outer a = " + s1.a);
}
private static void Foo(s s1)
{
s1.a++;
Console.WriteLine("inner a = " + s1.a);
}
}
}
输出为:
inner a = 2
outer a = 1