के रूप में संपत्ति के नामों की सूची उत्तीर्ण करने का सबसे अच्छा तरीका मेरे पास MyDummyClass
है जिसमें मैं बाद में मूल्यांकन के लिए लैम्ब्डा अभिव्यक्ति के रूप में कुछ गुणों को पास करना चाहता हूं। तो क्या मैं की तरहलैम्ब्डा अभिव्यक्ति
public class MyDummyClass<T>
{
public MyDummyClass(Expression<Func<T, object>> property)
{
...
}
...
}
कुछ कर सकते हैं ..और फिर, सही new MyDummyClass<Person>(x=>x.Name)
की तरह उस वर्ग का उपयोग करें?
लेकिन फिर मैं न केवल एक संपत्ति बल्कि संपत्तियों की एक सूची को पास करना चाहता हूं। इसलिए मैं की तरह
public class MyDummyClass<T>
{
public MyDummyClass(IEnumerable<Expression<Func<T, object>>> properties)
{
...
}
...
}
मेरी कक्षा लिखने और मैं तरह new MyDummyClass<Person>(new[] { x=>x.Name, x=>x.Surname })
की तरह उपयोग करने के लिए लेकिन दुर्भाग्य है कि काम नहीं करता चाहते! इसके बजाय मुझे
new MyDummyClass<Person>
(new Expression<Func<Person, object>>[] { x=>x.Name, x=>x.Surname});
लिखना है, लेकिन यह लिखने के लिए थोड़ा अजीब है, है ना? बेशक, पैराम का उपयोग काम करेगा, लेकिन यह कोड के एक अधिक जटिल टुकड़े से सिर्फ एक नमूना है जहां पैराम्स का उपयोग कर विकल्प नहीं है। किसी के पास इस से बाहर आने के लिए बेहतर विकल्प है ??
आप 'पैराम्स 'का उपयोग क्यों नहीं करना चाहते हैं? यह सबसे आसान तरीका है, और यह प्रतिनिधि प्रकार निर्दिष्ट किए बिना काम करेगा। –
मैं भी पैरा के लिए वोट देता हूं। यह वाक्यविन्यास को बहुत साफ रखेगा और दृश्यों के पीछे यह एक सरणी का उपयोग करेगा जो आप पहले स्थान पर करना चाहते थे! – Umair
निश्चित रूप से, इस सरल उदाहरण में यह होगा, लेकिन मैंने इसे एक अधिक जटिल से बाहर ले लिया जहां मैं पैरा का उपयोग नहीं कर सकता क्योंकि इसमें अन्य वैकल्पिक पैरामीटर हैं जो इसलिए काम नहीं करेंगे ... दुख की बात है – Juri