दिलचस्प पोस्ट
ConstraintLayout और RelativeLayout के बीच अंतर PowerShell में कॉलम के पाठ को विभाजित करें अभिव्यक्ति के साथ ggplot2 दो-पंक्ति लेबल IE10 / 11 अजाक्स XHR त्रुटि – SCRIPT7002: XMLHttpRequest: नेटवर्क त्रुटि 0x2ef3 JFormattedTextField ठीक से साफ नहीं है पायथन एलीमेंटट्री मॉड्यूल: "ढूंढें", "खोजक" विधि का उपयोग करते समय मिलान तत्व को ढूंढने के लिए एक्सएमएल फाइलों के नेमस्पेस की अनदेखी कैसे करें एंड्रॉइड में एसएमएस भेजें सेटपिक्सेल बहुत धीमा है क्या बिटमैप में आकर्षित करने का एक तेज़ तरीका है? एचटीएमएल में रिवर्स-ऑर्डर की सूची कैसे प्रदर्शित करें? एक वादा तैयार करें जो पुनरावर्ती वादों पर निर्भर करता है इस कोड से उत्पन्न होने वाली कोई अनाम आंतरिक श्रेणी क्यों नहीं है? जवाब 8। आईएस 8 में काम नहीं कर रहा है SQL सर्वर में RegEx का उपयोग करना जावा: अपने समय में 10 मिनट कैसे जोड़ना बाएं / दाएं और ऊपर / नीचे के बीच कड़ी चोट की दिशा का पता लगाने के लिए कैसे करें

सी # अनाम प्रकार ऑब्जेक्ट तक पहुंच

मैं किस गुंजाइश के बाहर एक गुमनाम प्रकार के ऑब्जेक्ट का उपयोग कर रहा हूं जहां इसकी घोषणा की गई?

उदाहरण के लिए

void FuncB() { var obj = FuncA(); Console.WriteLine(obj.Name); } ??? FuncA() { var a = (from e in DB.Entities where e.Id == 1 select new {Id = e.Id, Name = e.Name}).FirstOrDefault(); return a; } 

Solutions Collecting From Web of "सी # अनाम प्रकार ऑब्जेक्ट तक पहुंच"

जैसा कि दूसरे उत्तर में कहा गया है, आपको वास्तव में ऐसा नहीं करना चाहिए । लेकिन, यदि आप आग्रह करते हैं, तो एक गंदा हैक जिसे "उदाहरण के अनुसार डाली" कहा जाता है जो आपको इसे करने की अनुमति देगा। इस तकनीक का कुछ लेख में उल्लेख किया गया है, यहां और यहां ।

 public void FuncB() { var example = new { Id = 0, Name = string.Empty }; var obj = CastByExample(FuncA(), example); Console.WriteLine(obj.Name); } private object FuncA() { var a = from e in DB.Entities where e.Id == 1 select new { Id = e.Id, Name = e.Name }; return a.FirstOrDefault(); } private T CastByExample<T>(object target, T example) { return (T)target; } 

(मैं इस हैक के लिए क्रेडिट नहीं ले सकता, हालांकि उन लेखों में से एक लेखक का कहना है कि वह इसके साथ संबद्ध नहीं होना चाहता है । उसका नाम परिचित हो सकता है।)

आप फ़ंक्शन से एक अनाम प्रकार वापस नहीं लौट सकते।

एमएसडीएन दस्तावेज़ीकरण से :

किसी गुमनाम प्रकार, या एक संग्रह सीमा के बाहर अज्ञात प्रकार के संग्रह को पास करने के लिए, आपको सबसे पहले ऑब्जेक्ट को प्रकार डालना होगा। हालांकि, यह गुमनाम प्रकार की मजबूत टाइपिंग को हरा देता है यदि आपको अपने क्वेरी परिणाम संग्रहीत करना चाहिए या उन्हें विधि सीमा के बाहर पास करना होगा, तो किसी अज्ञात प्रकार के बजाय साधारण नामित संरचना या वर्ग का उपयोग करने पर विचार करें।

यदि आप .NET 4.0 का उपयोग कर रहे हैं, तो आप इसके लिए ट्यूपल्स का उपयोग कर सकते हैं, आप एक Tuple<int, string> वापस लौट Tuple<int, string> आप अपने स्वयं के ट्यूपल्स को 2.0 / 3.5 के लिए लागू कर सकते हैं, और वास्तव में अन्य लोगों के पास पहले से है, इसलिए आपको ऐसा करने में सक्षम होना चाहिए, अगर आप चाहें।

अनाम प्रकार सिर्फ एक कंपाइलर-जनरेटेड क्लास है, और कंपाइलर आपको कक्षा के नाम को बताने के लिए तैयार नहीं है। इसलिए, ऐसा कोई रास्ता नहीं है कि आप एक object संदर्भ लौटने के अलावा अन्य किसी फ़ंक्शन से इस क्लास का एक उदाहरण वापस कर सकते हैं।

खैर, मुझे लगता है कि इसका जवाब है: गुंजाइश के बाहर एक गुमनाम प्रकार का प्रयोग न करें जहां इसकी घोषणा की गई इस मामले में एक सरल प्रकार बनाओ।

ओपन सोर्स फ्रेमवर्क इम्प्रोप्टू-इंटरफ़ेस आपको एक अनोखा ऑब्जेक्ट को एक इंटरफ़ेस में डाक करने की अनुमति देगा। यह कम हैकी होने का लाभ है क्योंकि यह विधानसभा की सीमाओं में अपेक्षित काम करेगा। यह एक हल्के प्रॉक्सी और डीएलआर का उपयोग करके इसे पूरा करता है।

इस मामले के लिए एक वर्ग बनाएगा:

 public class LISTFUNCA { public int identificacion; public string nombre; } 

फिर:

 public List<LISTFUNCA> FuncA() { var lista = (from e in DB.Entities where e.Id == 1 select new { identificacion = e.Id, nombre = e.Name}) .FirstOrDefault(); return lista.ToList(); }