Main Content

Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Pasar argumentosSystem.Nullable

En este ejemplo se muestra cómo controlar los métodos de .NET con argumentos de tipo, cuyo tipo de valor subyacente es.System.Nullabledouble

En el ejemplo se muestra cómo llamar a un método con un argumento de entrada.System.Nullable Utiliza la función para mostrar para controlar un argumento de salida.MATLAB®plotSystem.Nullable

Compilar ensamblado personalizadoNetDocNullable

Para ejecutar el código en este ejemplo, compile el ensamblado.MATLABNetDocNullable El ensamblado se crea con el código de C#, en elNetDocNullable.cs matlabrootCarpeta./extern/examples/NET/NetSample Para ver el código, en editor y compile el ensamblado.abrir el archivoMATLABNetDocNullable

define el método que tiene argumentos.NetDocNullableSetFieldSystem.Nullable

 Función SignatureSetField

Ensamblado de cargaNetDocNullable

En el ejemplo se supone que coloca el ensamblado en la carpeta.c:\work Puede modificar el ejemplo para cambiar la ruta de acceso, del ensamblado.dllPath

dllPath = fullfile('c:','work','NetDocNullable.dll'); asm = NET.addAssembly(dllPath); cls = NetDocNullable.MyClass;

Utilice la variable para llamar, que crea un valor a partir de la entrada.clsSetFieldSystem.Nullable<System*Double>

Pasar argumentos de entradaSystem.Nullable

convierte y valora automáticamente en objetos.MATLABdoublenullSystem.Nullable<System*Double>

Pase un valor.double

field1 = SetField(cls,10) 
field1 =    System.Nullable<System*Double>   Package: System    Properties:     HasValue: 1        Value: 10   Methods, Superclasses 

La propiedad es true () y la propiedad es.HasValue1Value10

Pase el valor nulo,.[]

field2 = SetField(cls,[]) 
field2 =    System.Nullable<System*Double>   Package: System    Properties:     HasValue: 0   Methods, Superclasses 

La propiedad es false (), y no tiene ninguna propiedad.HasValue0Value

Controlar argumentos de salida enSystem.NullableMATLAB

Antes de usar un objeto, primero debe decidir cómo controlar los valores.System.NullableMATLABnull Si omite los valores, puede obtener resultados inesperados cuando se utiliza el valor de una función.nullMATLAB

La clase proporciona dos técnicas para controlar los valores nulos.System.Nullable Para proporcionar un control especial para los valores, utilice la propiedad.nullHasValue Para tratar un valor de la misma manera que a, utilice el método.nulldoubleGetValueOrDefault

Cree una función, que detecte valores y los trate de forma diferente a los valores numéricos.MATLABplotValue.mnull La entrada es un tipo.System.Nullable<System*Double> Si la entrada es, la función muestra un mensaje.null Si el valor de entrada es, crea un gráfico de líneas a partir del valor.double0

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 

La función utiliza la propiedad del argumento de entrada para detectar valores y llama a la función mediante la propiedad.plotValueHasValuenullMATLABplotValue

Llame con variable para mostrar un gráfico de líneas.plotValuefield1

plotValue(field1) 

Llame con la variable, un valor.plotValuefield2null

plotValue(field2)
No Data

Si no necesita un procesamiento especial para los valores, utilice el método.nullGetValueOrDefault Para mostrar la firma de la función, escriba:GetValueOrDefault

methodsview(field1)

Busque la siguiente firma de función:

 Función SignatureGetValueOrDefault

Este método convierte la variable de entrada para que pueda llamar directamente a la función:doubleMATLABplot

myData = GetValueOrDefault(field1); plot([0 myData+2])

El método convierte un valor en el valor numérico predeterminado,.GetValueOrDefaultnull0

defaultData = GetValueOrDefault(field2)
defaultData =      0

Llamar:plot

plot([0 defaultData])

Puede cambiar el valor predeterminado mediante el método.GetValueOrDefault Abra la ventana y busque la siguiente firma de función:methodsview

 Función de firma para cambiar el valor predeterminadoGetValueOrDefault

Establezca el argumento de entrada en un nuevo valor y trace los resultados para el valor.defaultValue-1nullfield2

defaultData = GetValueOrDefault(field2,-1); plot([0 defaultData])

Ejemplos relacionados

Más acerca de

Sitios web externos