सी # में, लैम्ब्डा स्थानीय चर का उपयोग कर सकते हैं, और कुछ डेटा भी वापस कर सकते हैं।सी # लैम्ब्डा, स्थानीय वैरिएबल बनाम रिटर्न डेटा
तो, जो निम्न स्थितियों में बेहतर है?
int num;
Func<int> func =()=>{return 10;}
num = func();
बनाम
int num;
Action action =()=>{num = 10;}
मुझे लगता है, प्रदर्शन अलग है। कौन सा बेहतर है?
अद्यतन यहाँ
मेरे कोड (मैं जानता हूँ कि StackOverflow का उपयोग कैसे न)।
ErrorCode errorCode;
errorCode = DatabaseUtility.Read<ErrorCode>(
conn,
DatabaseUtility.CreateSelectQuery(....),
reader =>
{
if(reader.Read())
return ErrorCode.None;
return ErrorCode.InvalidParam;
});
लेकिन इस मामले में, मैं ऐसा कर सकता हूं।
ErrorCode errorCode;
DatabaseUtility.Read(
conn,
DatabaseUtility.CreateSelectQuery(....),
reader =>
{
if(reader.Read())
errorCode = ErrorCode.None;
else
errorCode = ErrorCode.InvalidParam;
});
और, यह विधि परिभाषा है।
public static class DatabaseUtility
{
public static Read<T>(
MySqlConnection conn,
string query,
Func<MySqlDataReader, T> callback);
}
आप क्या हासिल करने की कोशिश कर रहे हैं? _better_ से आपका क्या मतलब है? आपको '10' से' num' को सीधे निर्दिष्ट करने से क्या रोक रहा है? –
@ सेल्मन 22 आप क्या पूछ रहे हैं? यह सिर्फ एक साधारण उदाहरण है। अगर आप जानना चाहते हैं कि मैं यह ज्ञान क्यों जानना चाहता हूं, तो मैं आपको बता सकता हूं। मैं अपने डीबी से कुछ डेटा चुनने का प्रयास करता हूं, और डेटा को संभालता हूं। इसके लिए, मैं Func प्रकार पैरामीटर के साथ उपयोगिता विधि परिभाषित करता हूं। और मैं उपयोगिता विधि के बाद अपना डेटा संभालता हूं, इसलिए Func मेरा डेटा वापस कर देता है। लेकिन लैम्ब्डा स्थानीय चर का उपयोग कर सकते हैं, मैं अपना डेटा क्यों वापस कर सकता हूं? मैं अपने डेटा को अपने स्थानीय चर में असाइन कर सकता हूं। यही है ना? तो मैं पूछता हूं, जो बेहतर कोड है। –
आपको क्या लगता है कि प्रदर्शन अलग है? क्या आपका ऐप इतना सही है कि आपको ऐसे माइक्रो ऑप्टिमाइज़ेशन पर परेशान होना है? –