Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original
Este tema aún no ha recibido ninguna valoración - Valorar este tema

OutAttribute (Clase)

Indica que el cálculo de referencias de los datos debe realizarse del destinatario de la llamada al llamador.

System.Object
  System.Attribute
    System.Runtime.InteropServices.OutAttribute

Espacio de nombres:  System.Runtime.InteropServices
Ensamblado:  mscorlib (en mscorlib.dll)
[AttributeUsageAttribute(AttributeTargets.Parameter, Inherited = false)]
[ComVisibleAttribute(true)]
public sealed class OutAttribute : Attribute

El tipo OutAttribute expone los siguientes miembros.

  NombreDescripción
Método públicoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsOutAttributeInicializa una nueva instancia de la clase OutAttribute.
Arriba
  NombreDescripción
Propiedad públicaTypeIdCuando se implementa en una clase derivada, obtiene un identificador único para este Attribute. (Se hereda de Attribute).
Arriba
  NombreDescripción
Método públicoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsEqualsInfraestructura. Devuelve un valor que indica si esta instancia equivale al objeto especificado. (Se hereda de Attribute).
Método públicoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsGetHashCodeDevuelve el código hash de esta instancia. (Se hereda de Attribute).
Método públicoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsGetType Obtiene el Typede la instancia actual. (Se hereda de Object).
Método públicoIsDefaultAttributeCuando se invalida en una clase derivada, indica si el valor de esta instancia es el valor predeterminado para la clase derivada. (Se hereda de Attribute).
Método públicoCompatible con XNA FrameworkMatch Cuando se invalida en una clase derivada, devuelve un valor que indica si esta instancia es igual al objeto especificado. (Se hereda de Attribute).
Método públicoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsToString Retorna una cadena que representa al objeto actual. (Se hereda de Object).
Arriba
  NombreDescripción
Implementación explícita de interfacesMétodo privado_Attribute.GetIDsOfNamesAsigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío. (Se hereda de Attribute).
Implementación explícita de interfacesMétodo privado_Attribute.GetTypeInfoObtiene la información de tipos de un objeto, que puede utilizarse para obtener la información de tipos de una interfaz. (Se hereda de Attribute).
Implementación explícita de interfacesMétodo privado_Attribute.GetTypeInfoCount

Recupera el número de interfaces de tipo de información que suministra un objeto (0 ó 1)

(Se hereda de Attribute).
Implementación explícita de interfacesMétodo privado_Attribute.InvokeProporciona acceso a las propiedades y los métodos expuestos por un objeto. (Se hereda de Attribute).
Arriba

Este atributo se puede aplicar a parámetros.

OutAttribute es opcional. El atributo sólo es compatible para la interoperabilidad COM y la invocación de plataforma. A falta de valores explícitos, el contador de referencias de interoperabilidad adopta las reglas basándose en el tipo del parámetro, en si el parámetro se pasa por referencia o por valor y en si el tipo puede transferirse en bloque de bits. Por ejemplo, siempre se asume que la clase StringBuilder es In/Out y que una matriz de cadenas que se ha pasado por valor es In.

El comportamiento de sólo Out no es nunca un comportamiento predeterminado de cálculo de referencias para los parámetros. OutAttribute puede aplicarse a tipos de valor y de referencia que se hayan pasado por referencia para cambiar el comportamiento de In/Out a sólo Out, que equivale a utilizar la palabra clave out en C#. Por ejemplo, las matrices pasadas por valor, cuyas referencias se calculan de forma predeterminada como parámetros solo In, pueden cambiarse a solo Out. Sin embargo, este comportamiento no siempre proporciona la semántica esperada cuando los tipos incluyen elementos o campos que pueden transferirse en bloque de bits en su totalidad porque el contador de referencias de interoperabilidad utiliza el anclaje. En los casos en los que no sea importante pasar los datos al destinatario de la llamada, el cálculo de referencias solo Out puede proporcionar un mejor rendimiento para los tipos que no pueden transferirse en bloque de bits.

La combinación de InAttribute y OutAttribute es especialmente útil cuando se aplica a matrices y a tipos con formato que no pueden transferirse en bloque de bits. Los llamadores ven los cambios realizados por un destinatario de la llamada en estos tipos sólo cuando se aplican ambos atributos. Como estos tipos requieren que se realicen copias durante el cálculo de referencias, InAttribute y OutAttribute pueden utilizarse para reducir el número de copias innecesarias.

Para obtener más información sobre el efecto de OutAttribute en el comportamiento del cálculo de referencias, vea Atributos direccionales.

El siguiente ejemplo muestra cómo aplicar InAttribute y OutAttribute a un prototipo de invocación de plataforma que pasa una matriz como parámetro. La combinación de atributos direccionales permite al llamador ver los cambios realizados por el destinatario.


using System.Runtime.InteropServices;
using System;


// Declare a class member for each structure element.
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public class OpenFileName
{
    public int structSize = 0;
    public string filter = null;
    public string file = null;
    // ...
}

public class LibWrap
{
    // Declare a managed prototype for the unmanaged function.
    [DllImport("Comdlg32.dll", CharSet = CharSet.Unicode)]
    public static extern bool GetOpenFileName([In, Out] OpenFileName ofn);
}

public class MainMethod
{
    static void Main()
    { }

}


.NET Framework

Compatible con: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Biblioteca de clases portable

Compatible con: Biblioteca de clases portable

.NET para aplicaciones de la Tienda Windows

Compatible con: Windows 8

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.
Todos los miembros públicos static (Shared en Visual Basic) de este tipo son seguros para subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.
¿Te ha resultado útil?
(Caracteres restantes: 1500)
Gracias por sus comentarios

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft. Reservados todos los derechos.