主要内容

本页采用了机器翻译。点击此处可查看英文原文。

为 C# .NET 客户端编写多个输出代码

R2026b

MATLAB® 允许用户编写具有多个输出的函数。要在 C# 中编码多个输出,请使用 out 关键字。

以下 MATLAB 代码接受多个输入(i1、i2、i3)并在执行一些检查和计算后返回多个输出(o1、o2、o3)。

在此示例中,第一个输入和输出的类型为 double,第二个输入和输出的类型为 int。第三个输入和输出的类型为 char。

要使用 MATLAB Production Server™ 软件部署此函数,您需要在 C# 中编写相应的方法接口,使用 out 关键字。指定 out 关键字会导致参量通过引用传递。使用 out 时,确保接口方法定义和调用方法都明确指定 out 关键字。

C# 接口中列出的输出参量数据类型(使用 out 关键字引用)必须与 MATLAB 签名中列出的输出参量数据类型完全匹配。因此,在 C# 接口 (MultipleOutputsExample) 和方法 (TryMultipleOutputs) 代码示例中,多个输出(与指定的数据类型匹配)的列出顺序与 MATLAB 函数中列出的顺序相同。

function [o1 o2 o3] = multipleoutputs(i1, i2, i3) 
o1 = modifyinput(i1);
o2 = modifyinput(i2);
o3 = modifyinput(i3);

function out = modifyinput(in)
if( isnumeric(in) )
    out = in*2;
elseif( ischar(in) )
    out = upper(in);
else 
    out = in;
end
public interface MultipleOutputsExample
{
    void multipleoutputs(out double o1, out int o2, out string o3, 
                                     double i1, int i2, string i3);
      }
public static void TryMultipleOutputs()
{
  MWClient client = new MWHttpClient();
  MultipleOutputsExample mpsexample = 
    client.CreateProxy<MultipleOutputsExample>(new Uri("http://localhost:9910/mpsexample"));

  double o1;
  int o2;
  string o3;
  mpsexample.multipleoutputs(out o1, out o2, out o3, 1.2, 10, "hello");
}

在创建 MWHttpClient 的新实例和客户端代理后,声明变量和调用方法 multipleoutputs。

在 multipleoutputs 方法中,与每个声明类型匹配的值都会被传递以进行输出(1.2 与 double 匹配,10 与 int 匹配,hello 与 string 匹配)到 output1。

请注意此示例说明的以下最佳编码实践: