WeakReferenceとは? わかりやすく解説

WeakReference クラス

"弱い参照" を表します弱い参照は、オブジェクトガベージ コレクション対象になっている状態のままで、そのオブジェクト参照します。

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

<SerializableAttribute> _
<ComVisibleAttribute(True)> _
Public Class WeakReference
    Implements ISerializable
Dim instance As WeakReference
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public class WeakReference : ISerializable
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public ref class WeakReference : ISerializable
/** @attribute SerializableAttribute() */ 
/** @attribute ComVisibleAttribute(true) */ 
public class WeakReference implements ISerializable
SerializableAttribute 
ComVisibleAttribute(true) 
public class WeakReference implements ISerializable
解説解説

共通言語ランタイムガベージ コレクション機構は、アクセスできないオブジェクトメモリからクリアます。オブジェクト参照null 参照 (Visual Basic では Nothing) に設定され場合など、直接、間接を問わずオブジェクトへのすべての参照無効になると、そのオブジェクトにはアクセスできなくなりますアクセス可能なオブジェクトへの参照は、"強い参照" と呼ばれます

弱い参照でも、アクセス可能なオブジェクト参照します。このようなオブジェクトターゲット呼ばれますユーザーターゲットへの強い参照作成するには、Target プロパティの値を変数割り当てます。ただし、強い参照参照されないターゲットは、弱い参照参照されていてもガベージ コレクション対象なります

オブジェクトガベージ コレクション対象になる時点と、このオブジェクト収集される時点との間に遅延生じることがありますターゲット収集後に、ユーザーがそのターゲット取得しようとした場合null 参照だけが取得されます。ターゲットがまだ収集されていない場合には、有効な参照取得できます

Finalize メソッド存在し、さらにこのメソッド呼び出すように指示されている場合には、ガベージ コレクションは、オブジェクトに対してこのメソッド呼び出します。つまり、終了処理が実行されます。終了処理が完了した後に、ユーザー現在の WeakReference オブジェクトの IsAlive プロパティまたは Target プロパティ使用してオブジェクトアクセスようとすると、InvalidOperationException がスローさます。

用語
パフォーマンスに関する考慮事項
.NET Framework のセキュリティ.NET Frameworkセキュリティ
継承階層継承階層
System.Object
  System.WeakReference
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

WeakReference コンストラクタ (Object, Boolean)

指定したオブジェクト参照し指定した再生処理追跡使用する WeakReference クラス新しインスタンス初期化します。

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

Public Sub New ( _
    target As Object, _
    trackResurrection As Boolean _
)
Dim target As Object
Dim trackResurrection As Boolean

Dim instance As New WeakReference(target,
 trackResurrection)
public WeakReference (
    Object target,
    bool trackResurrection
)
public:
WeakReference (
    Object^ target, 
    bool trackResurrection
)
public WeakReference (
    Object target, 
    boolean trackResurrection
)
public function WeakReference (
    target : Object, 
    trackResurrection : boolean
)

パラメータ

target

追跡するオブジェクト

trackResurrection

オブジェクト追跡停止時期を示しますtrue設定すると、終了後オブジェクト追跡されます。false設定すると、オブジェクト追跡終了実行される時点停止します

解説解説

trackResurrectionfalse場合は短い弱い参照作成されます。trackResurrectiontrue場合長い弱い参照作成されます。通常、短い弱い参照だけが必要です。

プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

WeakReference コンストラクタ


WeakReference コンストラクタ (SerializationInfo, StreamingContext)

指定したシリアル化およびストリーム オブジェクトからの逆シリアル化されたデータ使用してWeakReference クラス新しインスタンス初期化します。

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

Protected Sub New ( _
    info As SerializationInfo, _
    context As StreamingContext _
)
Dim info As SerializationInfo
Dim context As StreamingContext

Dim instance As New WeakReference(info,
 context)
protected WeakReference (
    SerializationInfo info,
    StreamingContext context
)
protected:
WeakReference (
    SerializationInfo^ info, 
    StreamingContext context
)
protected WeakReference (
    SerializationInfo info, 
    StreamingContext context
)
protected function WeakReference (
    info : SerializationInfo, 
    context : StreamingContext
)

パラメータ

info

現在の WeakReference オブジェクトシリアル化または逆シリアル化必要なすべてのデータ保持するオブジェクト

context

(予約済み) info によって指定されシリアル化ストリーム転送元と転送先の説明

例外例外
例外種類条件

ArgumentNullException

infonull 参照 (Visual Basic では Nothing) です。

解説解説

context パラメータ予約されているため、この操作では使用されません。

プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

WeakReference コンストラクタ (Object)

指定したオブジェクト参照する、WeakReference クラス新しインスタンス初期化します。

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

解説解説
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

WeakReference プロパティ


WeakReference メソッド


WeakReference メンバ

"弱い参照" を表します弱い参照は、オブジェクトガベージ コレクション対象になっている状態のままで、そのオブジェクト参照します。

WeakReference データ型公開されるメンバを以下の表に示します


パブリック コンストラクタパブリック コンストラクタ
プロテクト コンストラクタプロテクト コンストラクタ
パブリック プロパティパブリック プロパティ
  名前 説明
パブリック プロパティ TrackResurrection 現在の WeakReference オブジェクト参照するオブジェクトを、その終了後追跡するかどうかを示す値を取得します
パブリック メソッドパブリック メソッド
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

WeakReference クラス
System 名前空間
GC クラス

弱い参照

(WeakReference から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2019/02/10 17:42 UTC 版)

弱い参照: weak referenceウィークリファレンス)あるいは弱参照とは、参照先のオブジェクトをガベージコレクタから守ることのできない参照のことである。弱い参照からのみによって参照されるオブジェクトは到達不可能とみなされ、従っていつでも解放することができる。弱い参照は、通常の参照(強い参照、強参照)による諸問題を解決するために用いられる。PythonJavaをはじめとするガベージコレクタを実装したオブジェクト指向プログラミング言語の多くは、弱い参照を実装している。




「弱い参照」の続きの解説一覧


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「WeakReference」の関連用語

WeakReferenceのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



WeakReferenceのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2024 Microsoft.All rights reserved.
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアの弱い参照 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2024 GRAS Group, Inc.RSS