से एक प्रतिनिधि बनाएं एक प्रतिनिधि एक विधि से आप संकलन प्रकार सुरक्षित सिंटैक्स का उपयोग कर सकते हैं बनाने के लिए:एक संपत्ति गेटर या सेटर विधि
private int Method() { ... }
// and create the delegate to Method...
Func<int> d = Method;
प्रॉपर्टी का अभिप्राय किसी गेटर और सेटर विधि के चारों ओर एक आवरण है, और मैं एक संपत्ति गेटटर विधि में एक प्रतिनिधि बनाना चाहता हूँ। कुछ
public int Prop { get; set; }
Func<int> d = Prop;
// or...
Func<int> d = Prop_get;
दुर्भाग्य से काम नहीं करता है। मैं जब गेटर विधि वैसे भी प्रतिनिधि हस्ताक्षर से मेल खाता है एक अलग लैम्ब्डा विधि है, जो अनावश्यक लगता है बनाने के लिए:
Func<int> d =() => Prop;
आदेश सीधे प्रतिनिधि विधि का उपयोग करने, मैं बुरा प्रतिबिंब है, जो संकलन नहीं है का उपयोग करने के है में टाइप-सुरक्षित:
// something like this, not tested...
MethodInfo m = GetType().GetProperty("Prop").GetGetMethod();
Func<int> d = (Func<int>)Delegate.CreateDelegate(typeof(Func<int>), m);
वहाँ एक संकलन सुरक्षित रास्ते में सीधे एक संपत्ति हो रही विधि पर एक प्रतिनिधि बनाने, शीर्ष पर एक सामान्य पद्धति पर एक प्रतिनिधि बनाने के लिए इसी तरह की कोई तरीका है, एक का उपयोग करने के जरूरत के बिना मध्यवर्ती लैम्ब्डा विधि?
लैम्ब्डा के साथ बात क्या है? –
यह एक अतिरिक्त अनावश्यक विधि है, और चीजों को आवश्यकतानुसार अधिक जटिल बनाता है, क्योंकि संपत्ति गेटर पहले से ही प्रतिनिधि हस्ताक्षर से मेल खाता है – thecoop
मैं यहां अपना बिंदु देखने में असफल रहा हूं: एक लैम्ब्डा क्लास विधि नहीं है, लेकिन एक प्रतिनिधि को तुरंत चालू करने का एक तरीका है । Func d =() => प्रस्ताव का अर्थ है कि मैं अपने प्रतिनिधि डी को एक्सेसर –