एक नेस्टेड लूप से बाहर निकलने के लिए एक रास्ता शोध करने के बाद, मैं, goto
उपयोग करने का प्रयास करने के लिएमैं विधि के अंत में एक गोटो लेबल क्यों नहीं जोड़ सकता?
private void example()
{
for (int i = 0; i < 100; i++)
{
for (int ii = 0; ii < 100; ii++)
{
for (int iii = 0; iii < 100; iii++)
{
goto exitMethod;
}
}
}
exitMethod:
}
लेकिन किसी कारण से, अगर मैं दृश्य स्टूडियो में कहें, एक goto
लेबल विधि के अंत में है 2012 (का निर्णय लिया अंतिम) की शिकायत है (और यह संकलन नहीं होगा),
लेकिन अगर मैं इस के लिए मेरे कोड, बदल
private void example()
{
for (int i = 0; i < 100; i++)
{
for (int ii = 0; ii < 100; ii++)
{
for (int iii = 0; iii < 100; iii++)
{
goto exitMethod;
}
}
}
exitMethod:
int someUnneededVariable; // Just an example, if I add ANY piece of code the error vanishes.
}
कोई भी त्रुटि प्रकट नहीं होती है (और यह संकलित); मैंने उन सभी एमएसडीएन संदर्भों के माध्यम से खोज की है जिन्हें मैं जानता हूं, और मुझे इसके बारे में कुछ भी नहीं मिला।
मुझे पता है कि मैं आसानी से return;
का उपयोग करके इस समस्या का समाधान कर सकता है; फिर भी, मैं अभी भी यह जानना चाहूंगा कि इस त्रुटि का कारण क्या है।
मुझे पता है; लेकिन यह सिद्धांत है, मेरी समझ से संकलन करना चाहिए, लेकिन ऐसा नहीं है। – Sam
@ सैम: नहीं, यह वास्तव में नहीं होना चाहिए :) –
आपको लेबल के बाद कुछ कोड लिखना चाहिए। या अटली ';' लेबल के बाद ताकि दृश्य स्टूडियो समझ सके कि इसके बाद और कोड नहीं है। –