पर कैसे Go इंटरफेस संभालती देख रही है और यह पसंद के बाद, मैं कैसे आप इस तरह सी # में इसी तरह बतख टाइपिंग प्राप्त कर सकते थे के बारे में सोचना शुरू कर दिया फ्लाई पर एडाप्टर बनाने के लिए System.Reflection.Emit
। शायद किसी ने पहले से ही कुछ लिखा है। मुझे लगता है कि यह पहले से ही क्या नकली ढांचे से अलग नहीं है।को लागू सी # में सुरक्षित बतख टाइपिंग
हालांकि, Mallard
में वास्तव में IDuck
विधियों का सही समय नहीं है, तो यह रन-टाइम पर अपवाद फेंक देगा। संकलन समय पर पहले त्रुटि प्राप्त करने के लिए, मुझे MallardToDuckAdapter
लिखना होगा जो कि मैं बचने की कोशिश कर रहा हूं।
क्या कोई बेहतर तरीका है?
संपादित करें: जाहिर है कि मैं "सुरक्षित बतख-टाइपिंग" कहने के लिए उचित शब्द structural typing है।
मैंने जेनेरिक system.runtime.serialization formatters के साथ काम करने के लिए System.xml.serialization सिस्टम को अपनाने से पहले इसके लिए कामना की है। –
इसके अलावा: क्या यह संकलन-समय, या बस रन-टाइम पर जांचें? यदि उत्तरार्द्ध, उन्होंने समस्या के लिए कोई नया समाधान नहीं दिया है, तो आपके द्वारा पहले से उल्लिखित अतिरिक्त एडाप्टर कोड। –
हाँ, एडाप्टर लिखना बतख टाइपिंग के रूप में योग्य नहीं होगा, क्योंकि यह नियमित रूप से सी # टाइपिंग है ... –