मैं निम्न प्रकार है कहते हैं:सामान्य प्रकार वाले सरणी को कैसे घोषित किया जाए?
public class Field<T>
{
public string Name { get; set; }
public T Value { get; set; }
}
मैं एक चर कि इस तरह की फील्ड्स की एक सरणी में शामिल होंगे कैसे घोषणा कर सकते हैं?
var customFields = new Field[]
{
new Field<string> { Name = "nickname", Value = "Bob" },
new Field<int> { Name = "age", Value = 42 },
new Field<DateTime> { Name = "customer_since", Value = new DateTime(2000, 12, 1) }
};
लेकिन मैं निम्नलिखित संकलन समय अपवाद: मैं निम्नलिखित की कोशिश की
सामान्य प्रकार 'फील्ड' का उपयोग की आवश्यकता है 1 प्रकार तर्क
मैं भी कोशिश की, लेकिन var customFields = new Field<object>[]
मुझे निम्न त्रुटियां मिलती हैं:
स्पष्ट रूप से प्रकार 'फ़ील्ड' को 'एफ' में परिवर्तित नहीं कर सकता ield '
परोक्ष प्रकार कनवर्ट नहीं कर सकता' फील्ड 'को' फील्ड '
परोक्ष प्रकार कनवर्ट नहीं कर सकता' फील्ड '
प्रत्येक सामान्य प्रकार, एक * अलग प्रकार * है। इसलिए, आप विभिन्न प्रकार के उदाहरणों की एक सरणी बनाने की कोशिश कर रहे हैं। यह नहीं हो सकता। यह एक सरणी बनाने की कोशिश करने जैसा है जो 'स्ट्रिंग' और' int' मानों को संग्रहीत करेगा। हालांकि, आप [covariance] (https://msdn.microsoft.com/en-us/library/dd799517 (v = vs.110) .aspx पर एक नज़र डाल सकते हैं)। –