विभिन्न डेटाबेस तालिकाओं में मेरे पास एक संपत्ति और मूल्य कॉलम दोनों हैं। मैं डेटाबेस तक पहुंचने के लिए लिंक से SQL का उपयोग कर रहा हूं।मुझे अपने सी # जेनेरिक विधि में "त्रुटि: ... एक संदर्भ प्रकार होना चाहिए" क्यों मिलता है?
मैं एक तरीका है जिसके एक शब्दकोश दिया डेटाबेस तालिका से लिया गया गुण/मूल्यों से युक्त रिटर्न लिख रहा हूँ:
private static Dictionary<string, string> GetProperties<T>(Table<T> table)
{
Dictionary<string, string> properties = new Dictionary<string, string>();
foreach (var row in table)
{
properties[row.Property]=row.Value;
}
return properties;
}
संकलन करने पर, मैंने मिलती है:
Error 1 The type 'T' must be a reference type in order to use it as parameter 'TEntity' in the generic type or method 'System.Data.Linq.Table<TEntity>'
मैं कोशिश की है भाग्य के बिना इस त्रुटि संदेश की खोज।
स्टैक ओवरफ्लो खोजना, यह प्रश्न समान है, हालांकि पैरामीटर के संबंध में सूची: Generic List<T> as parameter on method - हालांकि पैरामीटर अभी भी उस प्रश्न के उत्तर में एक संदर्भ प्रकार नहीं है।
एमएसडीएन पर सी # प्रोग्रामिंग गाइड पढ़ना: http://msdn.microsoft.com/en-us/library/twcad0zb(VS.80).aspx मैं उनके उदाहरणों को संदर्भ के अनुसार पैरामीटर पास करता हूं। हालांकि, मैं नहीं देख सकता कि मेरे विशेष मामले में संदर्भ से कैसे पास किया जाए, क्योंकि जेनेरिक प्रकार केवल जेनेरिक प्रकार की तालिका निर्दिष्ट करने के लिए है।
किसी भी पॉइंटर्स की बहुत सराहना की जाएगी।
पीएस: अगर मुझे यह सुविधा स्वीकार करने में समय लगता है, तो माफी माँगती है, क्योंकि यह सुविधा वर्तमान में पहुंच योग्य नहीं है (मैं अंधा हूं और स्क्रीन रीडर का उपयोग करता हूं)।
कौन सा लाइन के खिलाफ है कि त्रुटि संदेश है? – sblom
@ माहेश: क्या आपने अपनी पोस्ट की आखिरी पंक्ति पढ़ी? @ सकिब: आप उस बारे में स्टैक ओवरफ्लो लोगों को एक नोट आग लगाना चाहेंगे। मुझे यकीन है कि वे जानना चाहते हैं कि उनकी साइट की एक महत्वपूर्ण विशेषता टूट गई है और यह उनके आगंतुकों के एक महत्वपूर्ण खंड के लिए काम नहीं करती है। –
क्षमा करें मेरा बुरा, मैंने नहीं किया। इंगित करने के लिए धन्यवाद। माफी –