dotnet-snippets.de
Willkommen bei dotnet-snippets.de! Snippet hinzufügen Login Registrieren
Snippets in der Datenbank: 1314 | Anzahl registrierter User: 1266 | Besucher online: 380
Hauptmenü
Home
Snippet Wettbewerb
Top Ten
Zufälliger Snippet
Vista Gadget
T-Shirts für Geeks
FAQs
.NET Community
dotnet-forum.de
dotnet-kicks.de
Social
Facebook
Twitter
RSS Feeds
Rss Alle Snippets
Rss C#
Rss VB.NET
Rss C++
Rss Delphi.NET
Rss ASP.NET
Werbung
Alice DSL Flatrate

Partner
Partner von Codezone.de


Member of Microsoft Community Leader/Insider Program (CLIP)

Generische WeakReference


Autor: Boas Enkler
Sprache: C#
Bewertung: 5
(2 Bewertungen)

Anzahl der Aufrufe: 724
  

Beschreibung:

Generische Ableitung der WeakReference

Abgelegt unter: WeakReference, WeakReference, Schwache, Verweise, Referenzen, objekte.



C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
 /// <summary>
    /// StrongTypes WeakReference
    /// </summary>
    /// <typeparam name="T">Type of the Target for which the Weakrefernce should be stored.</typeparam>
    public sealed class WeakReference<T>
    {
        WeakReference m_Target;



        /// <summary>
        /// The Strong Typed Reference Target
        /// </summary>
        public T Target
        {
            get
            {
                T result;

                result = (T)m_Target.Target;

                return result;
            }
        }

        /// <summary>
        /// Gets a value indicating whether this instance is alive.
        /// </summary>
        /// <value><c>true</c> if this instance is alive; otherwise, <c>false</c>.</value>
        public bool IsAlive
        {
            get 
            {
                bool alive = false;

                if (m_Target != null)
                {
                    alive = m_Target.IsAlive;
                }
                return alive;
            }
        }

        /// <summary>
        /// Gets a value indicating whether [track resurrection].
        /// </summary>
        /// <value><c>true</c> if [track resurrection]; otherwise, <c>false</c>.</value>
        public bool TrackResurrection
        {
            get
            {
                bool track = false;

                if (m_Target != null)
                {
                    track = m_Target.TrackResurrection;
                }

                return track;

            }
        }

        /// <summary>
        /// Initializes a new instance of the <see cref="WeakReference&lt;T&gt;"/> class.
        /// </summary>
        /// <param name="target">The target.</param>
        public WeakReference(T target)
        {
            Contract.Requires(target != null, "The Target should be different from null!");
            this.m_Target = new WeakReference(target);
        }

        /// <summary>
        /// Initializes a new instance of the <see cref="WeakReference&lt;T&gt;"/> class.
        /// </summary>
        /// <param name="target">The target.</param>
        /// <param name="trackResurrection">Indicates wether the object will be tracked after resurrection</param>
        public WeakReference(T target, bool trackResurrection)
        {
            Contract.Requires(target != null, "The Target should be different from null!");
            this.m_Target = new WeakReference(target,trackResurrection);
        }

    }
Sie haben Fragen zu diesem Snippet oder brauchen Hilfe bei der .NET Entwicklung?
Freundliche und kompetente Entwickler helfen Ihnen gern weiter im Forum für .NET Entwicklung.



Kommentare:
(Zum Schreiben von Kommentaren bitte anmelden.)

jack schrieb am:  04.03.2010 16:49:49

Worum geht es hier genau?
Rainer Hilmer schrieb am:  04.03.2010 18:36:43

Ich verstehe auch nicht so recht was das bringen soll. Ausser daß das Ding Code Contracts implementiert, wird doch alles nur 1:1 gekapselt und weitergeleitet. Aber vielleicht schnall ich das ja nur nicht.
Thomas Söhne schrieb am:  09.03.2010 12:36:55

Eine typisierte Weakreferenz, das erspart das type-casten.


Diese Snippets könnten für Sie interessant sein:

schlecht sehr gut
1 2 3 4 5 6 7 8 9 10
Nur angemeldete User können Snippets bewerten.