यह कोड "आउट मान" आउटपुट करता है।एक अपवाद फेंकने वाली विधि से आउट/रेफ पैरामीटर के माध्यम से मूल्य कैसे प्राप्त करें?
class P
{
public static void Main()
{
string arg = null;
try
{
Method(out arg);
}
catch
{
}
Console.WriteLine(arg);
}
public static void Method(out string arg)
{
arg = "out value";
throw new Exception();
}
}
लेकिन यह कोई नहीं करता है।
class P
{
public static void Main()
{
object[] args = new object[1];
MethodInfo mi = typeof(P).GetMethod("Method");
try
{
mi.Invoke(null, args);
}
catch
{
}
Console.WriteLine(args[0]);
}
public static void Method(out string arg)
{
arg = "out value";
throw new Exception();
}
}
मैं दोनों "बाहर मूल्य" और एक अपवाद जब प्रतिबिंब का उपयोग कर कैसे मिल सकता है?
अच्छा सवाल। लेकिन यदि कोई विधि फेंकता है तो आपको 'आउट' मान पर भरोसा नहीं करना चाहिए। –
+1, बहुत अच्छा सवाल, निश्चित रूप से मुझे इसे आजमा देना था :) मैं अनुमान लगाता हूं कि आपका मूल चर आवंटित फ़ंक्शन में पास नहीं होता है, यह एक प्रति प्राप्त करता है, और वह प्रतिलिपि सफल होने पर मूल में वापस दिखाई देती है पूरा होने (जो निश्चित रूप से नहीं होता है)। – slugster
@slugster: आपकी अटकलें सही है। मुझे संदेह है कि प्रतिबिंब के साथ ऐसा करने का कोई तरीका नहीं है। –