मैं सी # के लिए नया हूं और समझ में नहीं आता कि निम्न कोड क्यों काम नहीं करता है।सी # जेनेरिक त्रुटि के साथ सहायता - "प्रकार 'टी' एक गैर-शून्य मूल्य मान होना चाहिए"
प्रकार 'टी' आदेश सामान्य प्रकार या विधि 'सिस्टम में पैरामीटर के रूप में इसका इस्तेमाल करने के' टी 'में गैर-व्यर्थ मान प्रकार होना चाहिए:public static Nullable<T> CoalesceMax<T>(Nullable<T> a, Nullable<T> b) where T : IComparable { if (a.HasValue && b.HasValue) return a.Value.CompareTo(b.Value) < 0 ? b : a; else if (a.HasValue) return a; else return b; } // Sample usage: public DateTime? CalculateDate(DataRow row) { DateTime? result = null; if (!(row["EXPIRATION_DATE"] is DBNull)) result = DateTime.Parse((string)row["EXPIRATION_DATE"]); if (!(row["SHIPPING_DATE"] is DBNull)) result = CoalesceMax( result DateTime.Parse((string)row["SHIPPING_DATE"]).AddYears(1)); // etc. return result; }
यह संकलन के दौरान निम्नलिखित त्रुटि देता है struct बाधा:
public static Nullable<T> CoalesceMax<T> (Nullable<T> a, Nullable<T> b) where T : struct, IComparable
अन्यथा सी # क्याबाहर काम करने की कोशिश करेंगे .Nullable < टी > '
संकलक त्रुटि, क्योंकि उसी त्रुटि है आप समारोह परिभाषा की लाइन देता था। – SLaks