आप निश्चित रूप से आप क्या कह रहे हैं कर सकते हैं। ऐसा लगता है कि आपको चाहिए या नहीं, इस पर 2 शिविर लगते हैं। कुछ ऐसे हैं जो कहते हैं कि फ़ंक्शन से केवल 1 निकास बिंदु होना चाहिए। उनका सुझाव है कि आप रिकॉर्ड करने के लिए है कि आप (और संभवतः किसी भी डेटा है कि आप वापस जाने के लिए की जरूरत है) बाहर निकलने के लिए, और फिर वापस जाने के एक बार आप अपने लूप से बाहर टूट या अपने अगर/किसी और पेड़ के अंत तक पहुंच की जरूरत है एक झंडा चर का उपयोग करना चाहिए ।
व्यक्तिगत रूप से, मैं जब तक वे सममित हैं एक समारोह से कई निकास बिंदुओं के साथ कोई समस्या नहीं है,। "सममित" से मेरा क्या मतलब है? ठीक है, अगर मैं एक पाश के अंदर से वापस जाने के लिए जा रहा हूँ, तो मैं भी लूप (मामले में मुझे लगता है कि मुझे जल्दी वापस जाने के लिए कारण होगा पाश में हालत तक पहुँचने कभी नहीं) के अंत में वापस जाने के लिए चाहते हैं। अगर मैं एक जटिल अगर/किसी और पदानुक्रम के अंदर हूँ और मैं मामलों में से एक के भीतर से लौट, तो मैं उन सभी को भीतर से वापस आ जाएगी।
यहाँ कैसे मैं अपने कोड लिखने के लिए पसंद करते हैं में से कुछ जल्दी उदाहरण हैं:
public string Search(IEnumerable<string> values)
{
foreach(string value in values)
{
if(SomeArbitraryCondition())
return value;
}
return null;
}
public int PerformAction()
{
if (SomeArbitraryCondition())
{
if (SomeArbitraryCondition())
{
return 1;
}
else
{
return 2;
}
}
else
{
if (SomeArbitraryCondition())
{
return 3;
}
else
{
return 4;
}
}
}
यह वास्तव में एक कठिन और तेजी से नियम यह है कि मैं के बारे में ज्यादा सोचा है नहीं है, लेकिन यह केवल एक रास्ता है कि मैं इसे लिखना पसंद करते हैं क्योंकि यह मेरे लिए सबसे साफ लगता है। कुछ मामलों में, यह ध्वज चर का उपयोग करने के लिए और अधिक समझ में आता है और बस एक ही स्थान पर लौटता है।
public string Search(IEnumerable<string> values)
{
string found = null;
foreach(string value in values)
{
if(SomeArbitraryCondition())
found = value;
}
return found;
}
public int PerformAction()
{
int state;
if (SomeArbitraryCondition())
{
if (SomeArbitraryCondition())
{
state = 1;
}
else
{
state = 2;
}
}
else
{
if (SomeArbitraryCondition())
{
state = 3;
}
else
{
state = 4;
}
}
return state;
}
स्रोत
2009-12-01 23:35:07
इंडेक्स 1 इंडेंटेशन के कारण है ... :-) –
मैंने इस कोड को एमएसडीएन से कॉपी किया था जैसा कि यह था। – dotnetdev
मुझे पता है, यह सिर्फ एक मजाक था। 1 पर एक इंडेक्स शुरू करना गलत नहीं है, लेकिन इससे कुछ डेवलपर्स अनैच्छिक रूप से जुड़ जाते हैं। –