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 datos a objetos .NET

Cuando se llama a un método o función de .NET, convierte automáticamente los argumentos en tipos de .NET. realiza esta conversión en cada argumento pasado, excepto para los argumentos que ya son objetos .NET.MATLAB®MATLABMATLAB Los temas siguientes proporcionan información sobre cómo pasar tipos de datos específicos a los métodos de .NET.

Los tipos .NET de Pass primitivo

En la tabla siguiente se muestran los tipos base para los argumentos pasados y los tipos .NET correspondientes definidos para los argumentos de entrada.MATLAB Cada fila muestra un tipo seguido de las coincidencias posibles del argumento de .NET, de izquierda a derecha en orden de cercanía de la coincidencia.MATLAB

Tabla de conversión de tipo primitivoMATLAB

MATLAB Type
Tipo más cercano < ————— Otros Tipos de .NET Coincidentes ————— > tipo de cierre de la prefacio cada tipo de .NET con
System.
LógicaBooleanaByteSByteInt16UInt16Int32UInt32Int64UInt64solteroDobleObjeto
DobleDoblesolteroDecimalInt64UInt64Int32UInt32Int16UInt16SByteByteObjeto
solterosolteroDobleDecimalObjeto        
int8SByteInt16Int32Int64solteroDobleObjeto     
Uint8ByteUInt16UInt32UInt64solteroDobleObjeto     
Int16Int16Int32Int64solteroDobleObjeto      
UInt16UInt16UInt32UInt64solteroDobleObjeto      
Int32Int32Int64solteroDobleObjeto       
UInt32UInt32UInt64solteroDobleObjeto       
Int64Int64DobleObjeto         
UInt64UInt64DobleObjeto         
CharCharCadenaObjeto         
CadenaCadenaObjeto          

Los siguientes tipos de argumentos primitivos de .NET no tienen tipos equivalentes directos. pasa estos tipos como es:MATLABMATLAB

  • System.IntPtr

  • System.UIntPtr

  • System.Decimal

  • tipos enumerados

Pasar matrices de celdas

Puede pasar una matriz de celdas a una propiedad o método .NET que espera una matriz o argumentos, como se muestra en la tabla siguiente.System.ObjectSystem.String

Tabla de conversión de matrices de celdasMATLAB

MATLAB TypeTipo más cercano < ——— Otros Tipos de .NET Coincidentes ——— > tipo de cierre mínimo

Matriz de celdas de escalares de cadena y/o matrices de caracteres

System.String[]System.Object[]System.Object

Matriz de celdas (sin cadenas ni matrices de caracteres)

System.Object[]System.Object 

Los elementos de una celda pueden ser cualquiera de los siguientes tipos admitidos:

Pasar objetos .NET no primitivos

Al llamar a un método que tiene un argumento de una clase .NET determinada, pase un objeto que sea una instancia de esa clase o sus clases derivadas. Puede crear un objeto de este tipo mediante el constructor de clase o usar un objeto devuelto por un miembro de la clase. Cuando un miembro de clase devuelve un objeto .NET, lo deja como un objeto .NET.MATLAB Utilice este objeto para interactuar con otros miembros de la clase.

Pasar datos de cadena y carácterMATLAB

convierte automáticamente:MATLAB

  • matriz a un objeto .NET.charSystem.String Para pasar una matriz de matrices, cree una matriz de celdas.char

  • escalar a un objeto .NET.stringSystem.String

  • Cada escalar de una matriz a un objeto .NET.stringstringSystem.String La matriz se convierte en.stringSystem.String[]

  • Valor de cadena en NULL.<missing>

  • con un tamaño de 0.string.emptySystem.String[]

Pasa el tipo System. Nullable

Puede pasar cualquiera de los siguientes elementos a un método .NET con argumentos de entrada:System.Nullable<ValueType>

  • Variable del subyacente<ValueType>

  • Valornull[]

  • ObjetoSystem.Nullable<ValueType>

Cuando se pasa una variable de tipo, se lee la firma y se convierte automáticamente la variable en un objeto.MATLABValueTypeMATLABSystem.Nullable<ValueType> Para obtener una lista completa de los posibles valores aceptados, consulte el.ValueTypeSystem.Nullable<ValueType>Tabla de conversión de tipo primitivoMATLAB

Para ver ejemplos, vea.Pasar argumentosSystem.Nullable

Pasar valores nulos

utiliza los valores Empty () para los argumentos de tipo de referencia.MATLABdouble[]

Tipos no admitidosMATLAB

no admite la transmisión de los siguientes tipos a los métodos .NET:MATLABMATLAB

  • Las matrices de estructura

  • Los arrays dispersos

  • Los números complejos

Elegir firmas de método

elige la firma de método .NET correcta (incluidos los métodos constructor, estático y no estático) en función de los criterios siguientes.MATLAB

Cuando la función llama a un método .NET,:MATLABMATLAB

  1. Comprueba para asegurarse de que el objeto (o clase, para un método estático) tiene un método con ese nombre.

  2. Determina si la invocación pasa el mismo número de argumentos de al menos un método con ese nombre.

  3. Se asegura de que cada argumento pasado se puede convertir al tipo definido para el método.

Si se satisfacen todas las condiciones anteriores, llama al método.MATLAB

En una llamada a un método sobrecargado, si hay más de un candidato, selecciona el que tiene los argumentos que mejor se ajustan a los argumentos de llamada, en función de la.MATLABTabla de conversión de tipo primitivoMATLAB En primer lugar, rechaza todos los métodos que tienen los tipos de argumento que son incompatibles con los argumentos pasados.MATLAB Entre los métodos restantes, selecciona el que tiene el valor de aptitud más alto, que es la suma de los valores de aptitud de todos sus argumentos.MATLAB El valor de aptitud para cada argumento es cuán cerca está el tipo del tipo .NET.MATLAB Si dos métodos tienen la misma aptitud, elige el primero definido en la clase.MATLAB

Para los tipos de clase, elige la firma del método en función de la distancia del tipo de clase entrante al tipo de clase .NET esperado.MATLAB Cuanto más cerca esté el tipo entrante del tipo esperado, mejor será la coincidencia.

Las reglas para los métodos sobrecargados con argumentos opcionales se describen en.Determinar qué método sobrecargado se invoca

Ejemplo: elegir una firma de método

Abra una ventana para la clase y mire las entradas para el método:methodsviewSystem.StringConcat

import System.* methodsview('System.String')

El método toma uno o varios argumentos.Concat Si los argumentos son de tipo, el método conmemora los valores.System.String Por ejemplo, cree dos cadenas:

str1 = String('hello'); str2 = String('world');

Al escribir:

String.Concat(str1,str2)

comprueba que el método existe y busca una firma con dos argumentos de entrada.MATLABConcat En la tabla siguiente se muestran las dos firmas.

CalificadoresTipo de valor devueltoNombreArgumentos
StaticSystem.String RetValConcat(System.Object arg0,
System.Object arg1)
StaticSystem.String RetValConcat(System.String str0,
System.String str1)

Desde y son de clase, elige la segunda firma y muestra:str1str2System.StringMATLAB

ans =  helloworld

Si los argumentos son de tipo, el método muestra las representaciones de cadena de los valores.System.Object Por ejemplo, cree dos objetos:System.DateTime

dt = DateTime.Today; myDate = System.DateTime(dt.Year,3,1,11,32,5); 

Al escribir:

String.Concat(dt,myDate)

elige la firma siguiente, ya que los objetos se derivan de la clase.MATLABSystem.DateTimeSystem.Object

CalificadoresTipo de valor devueltoNombreArgumentos
StaticSystem.String RetValConcat(System.Object arg0,
System.Object arg1)

Este método aplica primero el método a los objetos y, a continuación, conmemora las cadenas. muestra información como:ConcatToStringMATLAB

ans =  12/23/2008 12:00:00 AM3/1/2008 11:32:05 AM

Pasar matrices

Para obtener información sobre cómo pasar matrices a métodos .NET, vea y.MATLABUtilice matrices con aplicaciones .NETPasar matrices como matrices irregularesMATLAB

Cómo afectan las dimensiones de matriz a la conversión

La dimensión de una matriz de .NET es el número de subsubscriptos necesarios para tener acceso a un elemento de la matriz. Para obtener el número de dimensiones, utilice la propiedad del tipo .NET.RankSystem.Array La dimensionalidad de una matriz es el número de dimensiones no singleton de la matriz.MATLAB

coincide con la dimensionalidad de la matriz con la firma del método .NET, siempre que la dimensionalidad de la matriz sea menor o igual que la dimensionalidad esperada.MATLABMATLAB Por ejemplo, puede pasar una entrada escalar a un método que espera una matriz 2-D.

Para una matriz con número de dimensiones, si la matriz de .NET tiene menos dimensiones, la conversión descarta las dimensiones de singleton, comenzando por la primera, hasta que el número de dimensiones restantes coincida con el número de dimensiones de la matriz de .NET.MATLABNNMATLAB

Convertir una matriz a System. ObjectMATLAB

Puede pasar una matriz a un método que espera un.MATLABSystem.Object

Pasar matrices como matrices irregularesMATLAB

Una matriz es una matriz rectangular.MATLAB .NET Framework admite un, que es una matriz de matrices.jagged array Por lo tanto, los elementos de una matriz irregular pueden ser de diferentes dimensiones y tamaños.

Aunque los lenguajes .NET admiten matrices escalonadas, el término no es una palabra clave de lenguaje.jagged Las firmas de función de C# usan varios pares de corchetes () para representar una matriz irregular.[][] Además, una matriz irregular puede ser anidada (), multidimensional () o anidada con elementos multidimensionales (por ejemplo,).[][][][,][,,][,][]

convierte automáticamente matrices de tipos numéricos al tipo de matriz irregular correspondiente.MATLABMATLAB Si el argumento de entrada es un tipo no numérico o multidimensional, utilice la función para crear una matriz para pasar como una matriz irregular.NET.createArray Para ver ejemplos usando, vea.NET.createArrayPasar matrices dentadas