この記事は機械翻訳されています。英語版の記事を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

OutAttribute クラス

 

公開日: 2016年10月

呼び出し先から呼び出し元へ、データをマーシャリングすることを示します。

名前空間:   System.Runtime.InteropServices
アセンブリ:  mscorlib (mscorlib.dll 内)

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

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

名前説明
System_CAPS_pubmethodOutAttribute()

OutAttribute クラスの新しいインスタンスを初期化します。

名前説明
System_CAPS_pubpropertyTypeId

派生クラスで実装されると、この Attribute の一意の識別子を取得します。(Attribute から継承されます。)

名前説明
System_CAPS_pubmethodEquals(Object)

この API は 製品 インフラストラクチャをサポートします。コードから直接使用するためのものではありません。 このインスタンスが、指定されたオブジェクトと等価であるかどうかを示す値を返します。(Attribute から継承されます。)

System_CAPS_pubmethodGetHashCode()

このインスタンスのハッシュ コードを返します。(Attribute から継承されます。)

System_CAPS_pubmethodGetType()

現在のインスタンスの Type を取得します。(Object から継承されます。)

System_CAPS_pubmethodIsDefaultAttribute()

派生クラスでオーバーライドされるとき、このインスタンスの値が派生クラスの既定値であるかどうかを示します。(Attribute から継承されます。)

System_CAPS_pubmethodMatch(Object)

派生クラスでオーバーライドされると、指定したオブジェクトをこのインスタンスが等しいかどうかを示す値を返します。(Attribute から継承されます。)

System_CAPS_pubmethodToString()

現在のオブジェクトを表す文字列を返します。(Object から継承されます。)

名前説明
System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

一連の名前を対応する一連のディスパッチ識別子に割り当てます。(Attribute から継承されます。)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

オブジェクトの型情報を取得します。この情報はインターフェイスの型情報の取得に使用できます。(Attribute から継承されます。)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfoCount(UInt32)

オブジェクトが提供する型情報インターフェイスの数 (0 または 1) を取得します。(Attribute から継承されます。)

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

オブジェクトによって公開されたプロパティおよびメソッドへのアクセスを提供します。(Attribute から継承されます。)

この属性は、パラメーターに適用できます。

OutAttribute は省略可能です。 COM 相互運用属性はサポートされており、プラットフォーム呼び出しのみです。 明示的な設定がない場合は、相互運用マーシャラーは、ルールは、型は、値渡しまたは参照によってにパラメーターが渡されるかどうか、型が blittable であるか、または blittable であって、パラメーターに基づくものとします。 たとえば、 StringBuilder クラスは、常と見なされ、In/out、値によって渡された文字列の配列にあると想定します。

アウトのみの動作は、既定のパラメーターの動作をマーシャ リングではありません。 適用できる、 OutAttribute を使用すると、アウトのみの動作に送受信の動作を変更への参照によって渡される値型と参照の型を out c# キーワードです。 たとえば、Out のみには、既定では、In のみのパラメーターとしてマーシャ リングの値によって渡された配列を変更できます。 ただし、動作は常に期待されるセマンティクス blittable 型のすべての要素型の場合やが提供されないフィールドの相互運用マーシャラーは、ピンを使用するためです。 呼び出し先にデータを渡すことはしない場合は、アウトのみのマーシャ リングと非 blittable 型のパフォーマンスが向上を指定できます。

結合、 InAttributeOutAttribute はときに特に便利ですが配列に適用され、フォーマットされている非 blittable 型です。 呼び出し元は、両方の属性を適用する場合にのみに、これらの型に、呼び出し先が加える変更を参照してください。 これらの型は、マーシャ リング中にコピーする必要があるために使用して、 InAttributeOutAttribute 不要なコピーを削減します。

効果の詳細については OutAttribute マーシャ リング動作、[次を参照してください。 方向属性します。

次の例では、適用する方法、 InAttributeOutAttribute プラットフォーム呼び出しのパラメーターとして配列を通過するプロトタイプです。 方向属性の組み合わせにより、呼び出し元が、呼び出し先による変更を確認します。

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

}

ユニバーサル Windows プラットフォーム
8 以降で使用可能
.NET Framework
1.1 以降で使用可能
ポータブル クラス ライブラリ
サポート対象: 移植可能 .NET プラットフォーム
Silverlight
2.0 以降で使用可能
Windows Phone Silverlight
7.0 以降で使用可能
Windows Phone
8.1 以降で使用可能

この型のパブリック static (Visual Basic では Shared ) メンバーはスレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

トップに戻る
表示: