En este ejemplo se muestra cómo especificar que un parámetro de función es un parámetro out y cómo llamar a esa función desde un programa escrito en C#.
Un parámetro out se especifica en C++ mediante OutAttribute.
Ejemplo
La primera parte de este ejemplo crea un archivo DLL de C++. Define un tipo que contiene una función con un parámetro out.
// cpp_out_param.cpp
// compile with: /LD /clr
using namespace System;
public value struct TestStruct {
static void Test([Runtime::InteropServices::Out] String^ %s) {
s = "a string";
}
};
Este archivo de origen es un cliente de C# que consume el componente de C++ creado en el ejemplo anterior.
// cpp_out_param_2.cs
// compile with: /reference:cpp_out_param.dll
using System;
class TestClass {
public static void Main() {
String t;
TestStruct.Test(out t);
System.Console.WriteLine(t);
}
}
En este módulo se tratan los parámetros de método, incluidos los tipos de parámetros pass-by-reference y pass-by-value. En este módulo también se tratan los argumentos opcionales y con nombre.