В этом примере показано, как использовать значения по умолчанию в дополнительных аргументах с помощью 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