कल्पना कीजिए हम निम्न विधियों है (छद्म सी #) के लिए (बुद्धिमान स्मृति) एक बेहतर प्रदर्शन विशेषताएं हैं: कम स्मृतिसरणी या Iterators - जो कॉल कि एक/दो तत्वों लौट
static IEnumerable<T> Iterator<T>()
{
switch (SomeCondition)
{
case CaseA:
yield return default(T);
case CaseB:
yield return default(T);
yield return default(T);
case CaseC:
yield return default(T);
default:
break;
}
}
static IEnumerable<T> Array<T>()
{
switch (SomeCondition)
{
case CaseA:
return new[] { default(T) };
case CaseB:
return new[] { default(T), default(T) };
case CaseC:
return new[] { default(T) };
default:
break;
}
}
कौन सा खपत होगी (और कम जीसी चक्र) यदि हमारे पास इस तरीके की तरह समान कॉल हैं? क्या इस तरह के संख्यात्मक। एक बार() परिदृश्य को लागू करने के लिए अपने स्वयं के गणनीय/गणनाकर्ता को लिखना समझ में आता है?
क्या हुआ जब आपने संकलन में दोनों नमूनों को संकलित और चलाया ताकि उपयुक्त अनुकूलन सक्षम हो सके? –
न तो एक बाधा होने की संभावना है, सबसे अधिक पढ़ने योग्य एक चुनें। –
क्या विधियों को * बिल्कुल * उन हस्ताक्षर होना चाहिए? क्या यह निश्चित रूप से एक बाधा है? उपयोग का मामला क्या है? यहां कुछ दिलचस्प विकल्प हैं, लेकिन हमें अधिक जानकारी चाहिए। –