如何将实际对象传递给采用对象引用的方法
How to pass an actual object to method that takes an object reference
在 C++/CLI 代码块中,我有这样的代码:
{
System::IO::StreamWriter sw("file");
sw.WriteLine("Hello, world!");
}
想法是 sw.Dispose()
在块的末尾被自动调用,不管它是如何到达那里的——无论是正常还是通过抛出异常。
现在,我想将 sw
传递给在 C# 中定义为 void foo(StreamWriter)
的方法。这意味着我不能简单地调用
foo(sw);
因为 foo
需要一个 StreamWriter^
而我传递给它一个 StreamWriter
。如何传递对 sw
的引用?
您需要使用 % 运算符!参见 Tracking References in the MSDN。
{
System::IO::StreamWriter sw("file");
sw.WriteLine("Hello, world!");
foo(%sw);
}
在 C++/CLI 代码块中,我有这样的代码:
{
System::IO::StreamWriter sw("file");
sw.WriteLine("Hello, world!");
}
想法是 sw.Dispose()
在块的末尾被自动调用,不管它是如何到达那里的——无论是正常还是通过抛出异常。
现在,我想将 sw
传递给在 C# 中定义为 void foo(StreamWriter)
的方法。这意味着我不能简单地调用
foo(sw);
因为 foo
需要一个 StreamWriter^
而我传递给它一个 StreamWriter
。如何传递对 sw
的引用?
您需要使用 % 运算符!参见 Tracking References in the MSDN。
{
System::IO::StreamWriter sw("file");
sw.WriteLine("Hello, world!");
foo(%sw);
}