उदाहरण के लिए, पुराने .NET Framework 2.0 स्रोत कोड (विंडोज फॉर्म, विजुअल स्टूडियो 2005 - व्हिडबे) में, (Microsoft से, 2009/2010) एक ही समारोह IntPtr का उपयोग कर परिभाषित किया गया हैजो उपयोग करने के लिए बेहतर/सुरक्षित है: हैंडलरफ या इंटप्रेट (माइक्रोसॉफ्ट से नया स्रोत कोड अब हैंडलरफ का उपयोग नहीं करता है)
[DllImport(ExternDll.User32, ExactSpelling=true, CharSet=CharSet.Auto)]
public static extern bool GetClientRect(HandleRef hWnd, [In, Out] ref NativeMethods.RECT rect);
नए विंडोज एपीआई कोड पैक में: GetClientRect समारोह HandleRef का उपयोग कर परिभाषित किया गया था
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
internal static extern bool GetClientRect(IntPtr hwnd, ref CoreNativeMethods.RECT rect);
असल में हैंडलरफ किसी भी विंडोज एपीआई कोड पैक स्रोत फ़ाइलों में उपयोग नहीं किया जाता है, जबकि इसका उपयोग पुराने .NET Framework स्रोत फ़ाइलों में देशी विधियों के हस्ताक्षरों में भारी रूप से किया जाता था।
[IntPtr, SafeHandle और हैंडलरफ - समझाया गया] के संभावित डुप्लिकेट (http: // stackoverflow।कॉम/प्रश्न/526661/इंटिप्टर-सेफहैंडल-एंड-हैंडलफ-समझाया गया) –
जब संभव हो तो एक सेफहैंडल का उपयोग करें ताकि आपको महत्वपूर्ण अंतिम रूप मिल सके और जीसी की आवश्यकता नहीं है। KeepAlive। – CodesInChaos
@ कोडी ग्रे दोनों प्रश्न, और जब मैं इसे लिखता हूं, तो वास्तव में यहां पूछे जाने वाले प्रश्नों को वास्तव में संबोधित नहीं करते हैं - * एक ही * कार्यों के लिए एमएस स्रोत क्यों एक दूसरे से बदल गया है? – AakashM