Этот пример показывает, как использовать значения по умолчанию в дополнительных аргументах с помощью метода Greeting
.
Приветствие функциональной подписи
Создайте пример C#, NetDocOptional.cs
в папке matlabroot
/extern/examples/NET/NetSample
. Для получения информации о создании блока смотрите, Создают Приложение.NET для MATLAB Examples.
Загрузите блок NetDocOptional
, если он уже не загружается.
dllPath = fullfile('c:','work','NetDocOptional.dll'); asm = NET.addAssembly(dllPath); cls = NetDocOptional.MyClass;
Пример принимает, что вы помещаете блок в свою папку c:\work
. Можно изменить функцию fullfile
, чтобы изменить путь к блоку.
Отобразите значения по умолчанию.
Greeting(cls,0)
ans = hello world
Используйте значение по умолчанию для str1
.
def = System.Reflection.Missing.Value;
Greeting(cls,0,def,'Mr. Jones')
ans = hello Mr. Jones
Используйте значение по умолчанию для str2
. Можно не использовать аргумент в конце списка параметров.
Greeting(cls,0,'My')
ans = My world
Этот пример показывает, как использовать дополнительные аргументы с перегруженным методом, calc
. Чтобы запустить пример, необходимо создать и создать собственный блок Doc
, задающий метод calc
в Class
со следующими функциональными подписями.
Загрузите свой блок и создайте cls
.
cls = Doc.Class;
Вызовите calc
с явными аргументами.
calc(cls,3,4)
ans = 7
При попытке использовать значения по умолчанию путем исключения параметров, MATLAB® не может определить который подпись использовать.
calc(cls)
Cannot choose between the following .NET method signatures due to unspecified optional arguments in the call to 'calc': 'Doc.Class.calc(Doc.Class this, optional<int32 scalar> x, optional<single scalar> y)' and 'Doc.Class.calc(Doc.Class this, optional<int32 scalar> x, optional<double scalar> y)' You can resolve this ambiguity by specifying enough additional optional arguments so that there is only one possible matching .NET method.
Чтобы использовать значения по умолчанию, необходимо обеспечить оба аргумента.
def = System.Reflection.Missing.Value; calc(cls,def,def) calc(cls,3,def) calc(cls,def,4)
ans = 44 ans = 14 ans = 37