【发布时间】:2013-10-13 15:48:18
【问题描述】:
我正在尝试将 C++ 代码转换为 C#。我们有在 C++ 中接受指针的函数。 在 C# 中,我们在做这件事时遇到了麻烦。 我们尝试了以下演示代码:
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Test obj = new Test();
int a,b;
Console.WriteLine("Initial Values");
a = 20;
b = 100;
obj.SetRef(ref a,ref b);
Console.WriteLine("Value of A: " + a);
Console.WriteLine("Value of B: " + b);
obj.SetValRef(ref a);
Console.WriteLine("After Ref");
Console.WriteLine("Value of A: " + a);
Console.WriteLine("Value of B: " + b);
Console.ReadKey();
}
}
class Test
{
public void SetRef(ref int x, ref int y)
{
y = x;
}
public void SetValOut(out int x)
{
x = 10;
}
public void SetValRef(ref int x)
{
x = 10;
}
}
}
当我们运行它时,输出是
Initial Values
Value of A: 20
Value of B: 20
After Ref
Value of A: 10
Value of B: 20
我们希望如果一个变量的值发生变化,那么第二个变量的值应该自动变化(指针)。
【问题讨论】:
-
第一:为什么不使用包装器为 C++ 代码提供 C# 接口?第二:考虑发出信号。
-
包装器有什么帮助?问题仅在于此处的参考变量..
-
@NewtonSheikh 因为他不必将 C++ 代码转换为 C#(虽然我不知道原因)