2009-03-15 8 views
5

में बाहरी विधि कॉल कैसे संभालता है मैं पूछना चाहता हूं कि सभी बाहरी विधि कॉल स्थिर क्यों हैं? सीएलआर इन कॉलों को कैसे संभालता है?सीएलआर सी #

उत्तर

4

बाहरी विधि कॉल अप्रबंधित कोड के लिए हैं। इस प्रकार, यह एक (प्रबंधित) ऑब्जेक्ट इंस्टेंस पर कॉल करने के लिए समझ में नहीं आता है - उदाहरण विधि में पहला (छुपा) तर्क उदाहरण संदर्भ है, उर्फ ​​this। आमतौर पर, extern विधियों में केवल साधारण प्रकार (प्राइमेटिव्स, स्ट्रिंग इत्यादि) शामिल होते हैं - ऑब्जेक्ट्स नहीं (शायद सरणी को छोड़कर - और यहां तक ​​कि उन्हें अक्सर IntPtr पर हल किया जाता है)।

2

extern कॉल आमतौर पर "सी-स्टाइल" एपीआई के अनुरूप होना चाहिए, और सी वस्तुओं के बारे में कुछ भी नहीं जानता है, इस प्रकार कॉल static हैं। के रूप में वहाँ एक ThisCall बुला सम्मेलन जो सी ++ तरीकों बुला में एक सहायता के रूप [DllImport] साथ इस्तेमाल किया जा सकता है

मेरे बयान नहीं 100% सच है।

संबंधित मुद्दे