主要内容

用可选参数调用.NET方法

跳过可选参数

属性在可选参数中使用默认值问候方法。

问候功能签名

构建c#示例,NetDocOptional.csmatlabroot走读生/ / NET/NetSample例子文件夹中。有关构建程序集的信息,请参见为MATLAB示例构建一个。net应用程序

加载NetDocOptional程序集,如果尚未加载。

dllPath = fullfile(“c:”,‘工作’,“NetDocOptional.dll”);asm = NET.addAssembly(dllPath);cls = netdocoption . myclass;

该示例假设您将程序集放在您的c: \工作文件夹中。您可以修改fullfile函数更改程序集的路径。

显示默认值。

问候(cls, 0)
你好,世界

使用默认值str1

def = System.Reflection.Missing.Value;问候(cls 0 def,“琼斯先生”
你好,琼斯先生

使用默认值str2.可以省略形参列表末尾的实参。

问候(cls, 0,“我”
我的世界

调用重载方法

这个例子展示了如何在重载方法中使用可选参数,calc.要运行示例,必须创建并构建自己的程序集医生定义calc方法使用以下函数签名。

函数签名

加载程序集并创建cls

cls = Doc.Class;

调用calc使用显式参数。

钙(cls、3、4)
Ans = 7

如果您试图通过省略参数来使用默认值,MATLAB®无法确定要使用哪个签名。

钙(cls)
由于调用'calc'中未指定的可选参数,无法在以下. net方法签名之间进行选择:'Doc.Class.calc(Doc.Class this,可选 x,可选<单一标量> y)'和'Doc.Class.calc(Doc.Class this,可选 x,可选<双标量> y)'你可以通过指定足够多的额外可选参数来解决这种歧义,这样就只有一个可能匹配的. net方法。

若要使用默认值,必须同时提供两个参数。

def = System.Reflection.Missing.Value;Calc (cls,def,def) Calc (cls,3,def)
Ans = 44 Ans = 14 Ans = 37