2011-02-18 7 views
16

यह स्पष्ट रूप से एक Google-प्रमाण शब्द है क्योंकि मुझे "अतिरिक्त" वर्णों को फेंकने के लिए कोई भी खोज इंजन नहीं मिल सकता है। मैंने सी ++ संदर्भ में एमएसडीएन को भी देखा लेकिन मुझे सी ++/सीएलआई संदर्भ नहीं मिल रहा है क्योंकि इसमें घोषणा अनुभाग में कुछ भी नहीं है।सी ++/सीएलआई ऑब्जेक्ट ^% (कैरेट प्रतिशत-चिह्न) घोषणा का अर्थ क्या है?

+2

MSDN: http://msdn.microsoft.com/en-us/library/8903062a%28VS.80 सी # में

void DoSomething(System::String^% stringObject) 

यह कैसा दिखेगा % 29.aspx यह भी देखें: http://stackoverflow.com/questions/202463/what-does-the-caret-mean-in-c-cli –

+0

@ ब्लूराजा, यदि आप इसका उत्तर देते हैं तो मैं इसे सही के रूप में चिह्नित करूंगा। मुझे बस लिंक और लिंक में अतिरिक्त सीएलआई अनुभाग मिला। धन्यवाद। –

+0

संभावित डुप्लिकेट [सी ++ प्रोजेक्ट में प्रतीक ^% का मतलब क्या है] (http://stackoverflow.com/questions/4999575/what-does-the-symbol-mean-in-c-project) –

उत्तर

10

%tracking reference है।

यह एक देशी संदर्भ (Object&) के समान है, लेकिन एक ट्रैकिंग संदर्भ एक CLR वस्तु संदर्भित कर सकते हैं, जबकि एक देशी संदर्भ नहीं कर सकता। भेद आवश्यक है क्योंकि कचरा कलेक्टर सीएलआर ऑब्जेक्ट्स को चारों ओर ले जा सकता है, इसलिए सीएलआर-ऑब्जेक्ट का मेमोरी एड्रेस बदल सकता है।

^ का मतलब है कि यह प्रबंधित है। MSDN और this SO post देखें।

7

अनिवार्य रूप से, यह Object*& का "प्रबंधित" संस्करण है, और सी # में संदर्भ प्रकार पर ref या out के बराबर है।

0

यह C++/CLI Tracking Reference है। यह एक सी ++ संदर्भ की तरह है, लेकिन एक प्रबंधित वस्तु के लिए।

15

इसका मतलब है "संदर्भ द्वारा पारित":

void bar::foo(Object^% arg) { 
    arg = gcnew Object; // Callers argument gets updated 
} 

C++ यही बात:

void foo(Object** arg) { 
    *arg = new Object; 
} 

या सी #:

void foo(out object arg) { 
    arg = new Object(); 
} 

C++/CLI बीच भेद नहीं करता रेफ और से बाहर, यह नहीं करता टी निश्चित असाइनमेंट जांच सुविधा है कि सी # भाषा में दोनों के बीच अंतर करने की आवश्यकता नहीं है। VB.NET, ByRef बनाम ByVal में वही।

3

यह संदर्भ द्वारा प्रबंधित पॉइंटर है। तो अगर आप की तरह कुछ था:

void DoSomething(ref System.String stringObject) 
संबंधित मुद्दे