Richtige IntPtr verwenden, die in C#

Ich denke ich verstehe die Verwendung von IntPtr, aber ich bin mir wirklich nicht sicher.

Kopierte ich die IDisposable-pattern aus der MSDN, nur um zu sehen, was ich kriegen konnte, und während ich verstehen, dass es für die meisten Teil, ich habe keine Ahnung wie ich das implementieren eines IntPtr richtig, oder gar verstehen, was es ist, es soll ein "Punkt" zu, oder Referenz. Auf top von, dass, ich haben keine Idee, wie Sie auch zuweisen, oder werfen ein integer, string, char, double, etc. um einen IntPtr einen Zeiger zu erstellen, aus ihm heraus.

Auch, IntPtr erfordern, unsicheren code verwenden?

Sowieso, hier ist etwas code, um ein Bild zu malen von dem, was ich Rede:

namespace Utilities
{   
    class Disposer : IDisposable
    {

        private IntPtr handle;

        private Component component = new Component(); 

        private bool disposed = false;

        public Disposer(IntPtr handle)
        {
            this.handle = handle;

        }

        public void Dispose()
        {
            Dispose(true);
            GC.SuppressFinalize(this);
        }

        protected virtual void Dispose(bool disposing)
        {
            if(!this.disposed)
            {
                if (disposing)
                {
                    component.Dispose(); 
                }
                CloseHandle(handle);

                handle = IntPtr.Zero;

                disposed = true;

            }
        }

        [System.Runtime.InteropServices.DllImport("Kernal32")]
        private extern static Boolean CloseHandle(IntPtr handle);
    }



    public unsafe class ExecuteMain
    {
        Object nuller = new Object();

        byte boa = 0;

        byte *blargh = boa;

        public static void Main()
        { 

        }
    }
}

Auch, könnte mir jemand sagen was der Punkt, der die Komponente hier ist, genau? Ich bin auch Schwierigkeiten Umhüllung meinem Kopf, um dieses Konzept als gut.

  • unklar ist, was deine Frage eigentlich ist?
  • Wenn Sie nur versuchen, die Spur ein handle auf einen Windows-kernel-Objekt ist, verwenden Sie eine SafeHandle: msdn.microsoft.com/en-us/library/...
InformationsquelleAutor zeboidlund | 2011-05-23
Schreibe einen Kommentar