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.

Controlar los datos devueltos desde objetos .NET

Tipo de .NET a asignación de tiposMATLAB

En la tabla siguiente se muestra cómo convierte los datos de un objeto .NET en tipos.MATLAB®MATLAB Estos valores se muestran en una firma de método.

C# .NET TypeTipoMATLAB
System.Int16Escalarint16
System.UInt16Escalaruint16
System.Int32Escalarint32
System.UInt32Escalaruint32
System.Int64Escalarint64
System.UInt64Escalaruint64
System.SingleEscalarsingle
System.DoubleEscalardouble
System.BooleanEscalarlogical
System.ByteEscalaruint8
System.Enumenum
System.Charchar
System.DecimalSystem.Decimal
System.ObjectSystem.Object
System.IntPtrSystem.IntPtr
System.UIntPtrSystem.UIntPtr
System.StringSystem.String
System.Nullable<ValueType>System.Nullable<ValueType>
System.Array

VerUtilice matrices con aplicaciones .NET

System.__ComObject

VerCómo maneja System. _ # ComObjectMATLAB

class nameclass name
struct namestruct name

¿Cómo maneja System. StringMATLAB

Para convertir un objeto en una cadena, utilice la función.System.StringMATLABstring Para convertir un objeto en una matriz de caracteres, utilice la función.System.StringMATLABchar Por ejemplo:

str = System.String('create a System.String'); mlstr = string(str) mlchar = char(str) 
mlstr =       "create a System.String"   mlchar =      'create a System.String'            

muestra el valor de cadena de los objetos, en lugar de la visualización del objeto estándar.MATLABSystem.String Por ejemplo, escriba:

a = System.String('test') b = System.String.Concat(a,' hello',' world') 
a =  test b =  test hello world 

La clase ilustra cómo controla los campos y las propiedades, como se describe en.System.StringMATLABLlame a propiedades de .NET que toman un argumento Para ver información de referencia sobre la clase, busque el término en la biblioteca de clases de .NET Framework, como se describe en.System.StringPara obtener más información sobre .NET Framework

La función convierte matrices (,, etcétera) en matrices con las mismas dimensiones y tamaños.stringString.StringString.String[]String.String[,]MATLABstring No se admite la conversión de matrices irregulares, por ejemplo.String.String[][]

Cómo maneja System. _ # ComObjectMATLAB

El tipo representa unSystem.__ComObject ComMicrosoft® Objeto. Es una clase pública no visible en el ensamblado sin métodos públicos.mscorlib En determinadas circunstancias, un objeto .NET devuelve una instancia de. controla el basado en los tipos de valor devuelto definidos en los metadatos.System.__ComObjectMATLABSystem.__ComObject

Convierte ObjectMATLAB

Si el tipo de valor devuelto de un método o propiedad está fuertemente tipado, y el resultado de la invocación es, convierte automáticamente el objeto devuelto al tipo adecuado.System.__ComObjectMATLAB

Por ejemplo, supongamos que el ensamblado define un tipo y proporciona un método, con la firma siguiente.TestTypeGetTestType

Tipo de valor devueltoNombreArgumentos
NetDocTest.TestType RetValGetTestType(NetDocTest.MyClass this)

El tipo de valor devuelto está fuertemente tipado y .NET Framework devuelve un objeto de tipo. convierte automáticamente el objeto al tipo adecuado, que se muestra a continuación:GetTestTypeSystem.__ComObjectMATLABNetDocTest.TestTypepseudo-code

cls = NetDocTest.MyClass; var = GetTestType(cls) 
var =     TestType handle with no properties. 

Convertir objeto a tipo apropiado

Si el tipo de valor devuelto de un método o propiedad es, y el resultado de la invocación es, devuelve.System.ObjectSystem.__ComObjectMATLABSystem.__ComObject Para usar el objeto devuelto, se convierte en un tipo de interfaz o clase válido. Utilice la documentación del producto para identificar los tipos válidos para este objeto.

Para llamar a un miembro del nuevo tipo, convertir el objeto mediante la sintaxis de conversión:MATLAB

objConverted = namespace.classname(obj)

donde es un tipo.objSystem.__ComObject

Por ejemplo, un elemento de un MicrosoftExcel® colección de hojas puede ser un gráfico o una hoja de cálculo. El siguiente comando convierte la variable a a o a un objeto:System.__ComObjectmySheetChartWorksheetnewSheet

newSheet = Microsoft.Office.Interop.Excel.interfacename(mySheet);

Dónde interfacename es o.ChartWorksheet Para ver un ejemplo, vea.Trabaje con MicrosoftExcel Hojas de cálculo con .NET

Pase un objeto COM entre procesos

Si pasa un objeto COM a o desde una función, bloquee el objeto para que no se libere automáticamente cuando el objeto salga del ámbito.MATLAB Para bloquear el objeto, llame a la función.NET.disableAutoRelease A continuación, desbloquea el objeto, usando la función, después de usarlo.NET.enableAutoRelease

¿Cómo maneja System. NullableMATLAB

Si .NET devuelve un tipo, devuelve el tipo correspondiente.System.NullableMATLABSystem.Nullable

Un tipo le permite asignar valores a tipos, como tipos numéricos, que no admiten valor.System.Nullablenullnull Para usar un objeto en, primero decida cómo controlar los valores.System.NullableMATLABnull

  • Si desea procesar valores de forma diferente a los valores, utilice la propiedad.null<ValueType>HasValue

  • Si desea que todos los valores sean de los subyacentes, utilice el método.<ValueType>GetValueOrDefault Este método asigna un valor predeterminado de tipo a Values.<ValueType>null

Utilice una variable del tipo subyacente del objeto cuando corresponda en cualquier expresión.MATLAB Para ver ejemplos, vea.Pasar argumentosSystem.Nullable

Cómo maneja el tipo dinámicoMATLAB

maneja tipos dinámicos como.MATLABSystem.Object Por ejemplo, el siguiente método de C# tiene un argumento de entrada dinámico y devuelve un valor de salida dinámico:exampleMethodd

public dynamic exampleMethod(dynamic d)

La siguiente tabla muestra la signatura de función correspondiente.MATLAB

Tipo de valor devueltoNombreArgumentos
System.Object RetValexampleMethod(namespace.classname this,
System.Object d)

Cómo maneja las matrices dentadasMATLAB

Debe convertir una matriz escalonada de .NET antes de usarla en un comando.MATLAB Para convertir:

  • Si la forma de la matriz es rectangular, utilice la función numérica correspondiente.MATLAB

  • Si la matriz no es rectangular, utilice la función.cell

Si la matriz irregular es multidimensional, debe convertir individualmente las matrices en cada dimensión.