System.Nullable АргументыВ этом примере показано, как обрабатывать методы .NET с помощью System.Nullable аргументы типа, базовым типом значения которого является double.
В примере показано, как вызвать метод с помощью System.Nullable входной аргумент. Он использует MATLAB
®plot функция для отображения для обработки System.Nullable выходной аргумент.
NetDocNullableДля выполнения кода MATLAB в этом примере создайте NetDocNullable сборка. Сборка создается с кодом C #,NetDocNullable.cs, в matlabroot/extern/examples/NET/NetSample папка. Для просмотра кода откройте файл в MATLAB Editor и создайте NetDocNullable сборка.
NetDocNullable определяет метод SetField которая имеет System.Nullable аргументы.
NetDocNullable АссамблеяВ примере предполагается, что сборка помещена в c:\work папка. Можно изменить пример, чтобы изменить путь, dllPath, сборки.
dllPath = fullfile('c:','work','NetDocNullable.dll'); asm = NET.addAssembly(dllPath); cls = NetDocNullable.MyClass;
Используйте cls переменная для вызова SetField, которая создает System.Nullable<System*Double> значение из ваших входных данных.
System.Nullable Входные аргументыMATLAB автоматически преобразует double и null значения для System.Nullable<System*Double> объекты.
Пройти а double значение.
field1 = SetField(cls,10)
field1 =
System.Nullable<System*Double>
Package: System
Properties:
HasValue: 1
Value: 10
Methods, Superclasses
HasValue свойство имеет значение true (1) и Value свойство - 10.
Передать нулевое значение, [].
field2 = SetField(cls,[])
field2 =
System.Nullable<System*Double>
Package: System
Properties:
HasValue: 0
Methods, Superclasses
HasValue свойство имеет значение false (0), и у него нет Value собственность.
System.Nullable Выходные аргументы в MATLABПеред использованием System.Nullable объект в MATLAB, сначала решите, как обращаться null значения. Если игнорировать null значения могут получить неожиданные результаты при использовании значения в функции MATLAB.
System.Nullable класс предоставляет два метода обработки нулевых значений. Предоставление специальной обработки для null значения, используйте HasValue собственность. Для лечения null значение таким же образом, как и double, используйте GetValueOrDefault способ.
Создайте функцию MATLAB, plotValue.m, который обнаруживает null и обрабатывает их иначе, чем числовые значения. Вход представляет собой System.Nullable<System*Double> тип. Если вход null, функция отображает сообщение. Если входное значение равно double, он создает линейный график из 0 к значению.
function plotValue(x) % x is System.Nullable<System*Double> type if (x.HasValue && isfloat(x.Value)) plot([0 x.Value]) else disp('No Data') end
plotValue функция использует HasValue свойство входного аргумента для обнаружения null значения и вызывает MATLAB plot с помощью функции Value собственность.
Звонить plotValue с переменной field1 для отображения линейного графика.
plotValue(field1)
Звонить plotValue с переменной field2, a null значение.
plotValue(field2)
No Data
Если специальная обработка для не требуется null значения, используйте GetValueOrDefault способ. Для отображения GetValueOrDefault сигнатура функции, тип:
methodsview(field1)
Найдите следующую подпись функции:
GetValueOrDefault Подпись функции
Этот метод преобразует входную переменную в double для непосредственного вызова MATLAB plot функция:
myData = GetValueOrDefault(field1); plot([0 myData+2])
GetValueOrDefault метод преобразует null значение - числовое значение по умолчанию, 0.
defaultData = GetValueOrDefault(field2)
defaultData =
0Звонить plot:
plot([0 defaultData])
Значение по умолчанию можно изменить с помощью GetValueOrDefault способ. Откройте окно methodsview и найдите следующую сигнатуру функции:
GetValueOrDefault Подпись функции для изменения значения по умолчанию
Установите defaultValue входной аргумент для нового значения, -1и постройте график результатов для null стоимость field2.
defaultData = GetValueOrDefault(field2,-1); plot([0 defaultData])