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