Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

OutAttribute-Klasse

 

Veröffentlicht: Oktober 2016

Gibt an, dass Daten vom Aufgerufenen zurück zum Aufrufer gemarshallt werden sollen.

Namespace:   System.Runtime.InteropServices
Assembly:  mscorlib (in mscorlib.dll)

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

[AttributeUsageAttribute(AttributeTargets.Parameter, Inherited = false)]
[ComVisibleAttribute(true)]
public sealed class OutAttribute : Attribute

NameBeschreibung
System_CAPS_pubmethodOutAttribute()

Initialisiert eine neue Instanz der OutAttribute-Klasse.

NameBeschreibung
System_CAPS_pubpropertyTypeId

Ruft bei Implementierung in einer abgeleiteten Klasse einen eindeutigen Bezeichner für dieses Attribute ab.(Geerbt von „Attribute“.)

NameBeschreibung
System_CAPS_pubmethodEquals(Object)

Diese API unterstützt die Produkt Infrastruktur und sollte nicht direkt aus dem Code verwendet werden. Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen Objekt ist.(Geerbt von „Attribute“.)

System_CAPS_pubmethodGetHashCode()

Gibt den Hashcode für diese Instanz zurück.(Geerbt von „Attribute“.)

System_CAPS_pubmethodGetType()

Ruft den Type der aktuellen Instanz ab.(Geerbt von „Object“.)

System_CAPS_pubmethodIsDefaultAttribute()

Gibt beim Überschreiben in einer abgeleiteten Klasse an, ob der Wert der Instanz der Standardwert für die abgeleitete Klasse ist.(Geerbt von „Attribute“.)

System_CAPS_pubmethodMatch(Object)

Ruft beim Überschreiben in einer abgeleiteten Klasse gibt einen Wert, der angibt, ob diese Instanz gleich ein angegebenen Objekt ist.(Geerbt von „Attribute“.)

System_CAPS_pubmethodToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.(Geerbt von „Object“.)

NameBeschreibung
System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu.(Geerbt von „Attribute“.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Ruft die Typinformationen für ein Objekt ab, mit deren Hilfe die Typinformationen für eine Schnittstelle abgerufen werden können.(Geerbt von „Attribute“.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfoCount(UInt32)

Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1).(Geerbt von „Attribute“.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Stellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit.(Geerbt von „Attribute“.)

Sie können dieses Attribut auf Parameter anwenden.

Die OutAttribute ist optional. Das Attribut wird unterstützt, für COM-Interop und Plattformaufrufe nur. In Ermangelung explizite Einstellungen angenommen der Interop-Marshaller Regeln basiert auf dem Parameter, Typ gibt an, ob der Parameter als Verweis oder als Wert übergeben wird und gibt an, ob der Typ für Blitvorgänge geeignet oder nicht für Blitvorgänge ist. Zum Beispiel die StringBuilder Klasse wird immer als In/Out und wird davon ausgegangen, dass ein Array von Zeichenfolgen nach Wert übergeben werden.

Nur Out-Verhalten stellt nie Marshallingverhalten für Parameter. Können Sie anwenden der OutAttribute auf Wert- und Referenztypen übergeben als Verweis auf die In/Out-Verhalten in reine Out-Verhalten zu ändern, entspricht der Verwendung der out -Schlüsselwort in c#. Arrays nach Wert übergeben, als In-Parameter gemarshallt werden, in der Standardeinstellung können z. B. zu außenumgrenzung geändert werden. Das Verhalten wird jedoch immer bietet keine erwartete Semantik, wenn die Typen vollständig blitfähige Elemente enthalten, oder Felder, da der Interop-Marshaller eine Fixierung verwendet. Wenn die Übergabe von Daten an die aufgerufene Methode unerheblich ist, kann die außenumgrenzung Marshalling eine bessere Leistung für nicht blitfähige Typen bereitstellen.

Kombinieren der InAttribute und OutAttribute ist besonders nützlich, wenn auf Arrays und formatierte, nicht blitfähige Typen. Aufrufer finden Sie die Änderungen, die eine aufgerufene Funktion diese Typen werden nur dann, wenn Sie beide Attribute anwenden. Da diese Typen, die während des Marshallens Kopiervorgänge erforderlich sind, können Sie InAttribute und OutAttribute nicht benötigte Kopien reduzieren.

Weitere Informationen über die Auswirkung des OutAttribute auf das Marshallingverhalten finden Sie unter direktionale Attribute.

Das folgende Beispiel zeigt, wie Sie anwenden der InAttribute und OutAttribute in einem Plattformaufrufe Prototyp, der ein Array als Parameter übergeben wird. Die Kombination von direktionalen Attribute kann der Aufrufer die vom aufgerufenen vorgenommenen Änderungen finden Sie unter.

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()
    { }

}

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 1.1
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Windows Phone
Verfügbar seit 8.1

Alle öffentlichen statischen Member ( Shared in Visual Basic) dieses Typs sind threadsicher. Die Threadsicherheit für Instanzmember ist nicht garantiert.

Zurück zum Anfang
Anzeigen: