मैं विजुअल स्टूडियो 2015 का उपयोग कर रहा हूं और मेरे पास दो कथन हैं।जेनेरिक प्रकार - नाम सरलीकृत किया जा सकता है
Task<List<int>> taskWithInLineAction = new Task<List<int>>(() =>
{
List<int> ints = new List<int>();
for (int i = 0; i < 1000; i++)
{
ints.Add(i);
}
return ints;
});
Task<List<int>> taskWithFactoryAndState = Task.Factory.StartNew<List<int>>((stateObj) =>
{
List<int> ints = new List<int>();
for (int i = 0; i < (int)stateObj; i++)
{
ints.Add(i);
}
return ints;
}, 2000);
Vs2015 मुझे चेतावनी दी है कि
Task.Factory.StartNew<List<int>>((stateObj)
Task.Factory.StartNew((stateObj)
को सरल किया जा सकता मैं देख सकता हूँ मैं इसे किसी भी प्रकार के बिना भी उपयोग कर सकते हैं और वी.एस. लैम्ब्डा अभिव्यक्ति वापसी से सामान्य प्रकार infers के रूप में मान प्रकार, जैसा कि नीचे है:
Task taskWithFactoryAndState = Task.Factory.StartNew((stateObj) =>
{
List<int> ints = new List<int>();
for (int i = 0; i < (int)stateObj; i++)
{
ints.Add(i);
}
return ints;
}, 2000);
लेकिन यह पहले कथन पर लागू नहीं है। इस मामले में, वीएस मुझे जेनेरिक प्रकारों को शामिल करने के लिए मजबूर करता है।
क्या आप कृपया मेरी मदद कर सकते हैं, ये दोनों अलग-अलग व्यवहार क्यों करते हैं?
क्योंकि आपको हमेशा रचनाकारों को सामान्य तर्क प्रदान करना होगा। वही – Rob