मेरे पास इस (डमी) कोड के साथ एक जेनेरिक विधि है (हाँ, मैं जानता हूँ कि IList की भविष्यवाणी की गई है, लेकिन मेरा कोड IList का उपयोग नहीं कर रहा है, लेकिन कुछ अन्य संग्रह, वैसे भी यह प्रश्न के लिए अप्रासंगिक है ...)
static T FindThing<T>(IList collection, int id) where T : IThing, new()
{
foreach T thing in collecion
{
if (thing.Id == id)
return thing;
}
return null; // ERROR: Cannot convert null to type parameter 'T' because it could be a value type. Consider using 'default(T)' instead.
}
यह मुझे एक बिल्ड त्रुटि देता है
"पैरामीटर 'T' टाइप करने के लिए अशक्त को परिवर्तित नहीं किया जा सकता है क्योंकि यह एक मूल्य प्रकार हो सकता है। इसके बजाय 'डिफ़ॉल्ट (T)' का उपयोग करने पर विचार करें।"
क्या मैं इस त्रुटि से बच सकता हूँ?
null
चाहेT
हैObject
याint
याchar
।