यह शायद अन्य स्थानों पर लागू होता है, लेकिन WinForms में, जब मैं बाध्यकारी का उपयोग करता हूं तो मुझे लगता है कि कई विधियां संपत्ति के नाम को बांधना चाहते हैं। की तरह कुछ:क्या सी # बाध्यकारी कार्य स्थिर रूप से बनाने का कोई तरीका है?
class Person
{
public String Name { get { ... } set { ... } }
public int Age { get { ... } set { ... } }
}
class PersonView
{
void Bind(Person p)
{
nameControl.Bind(p,"Name");
ageControl.Bind(p,"Age");
}
}
बड़ी समस्या मैं इस के साथ कर रखना है कि "नाम" और "आयु" तार के रूप में निर्दिष्ट कर रहे हैं। इसका मतलब यह है कि अगर किसी व्यक्ति की संपत्ति का नाम बदलता है तो संकलक कोई मदद नहीं करता है। कोड ठीक संकलित करेगा, लेकिन बाइंडिंग टूटा जाएगा।
क्या यह याद करने का एक मानक तरीका है जिसे मैंने याद किया है? ऐसा लगता है कि मुझे कुछ खोजशब्द की आवश्यकता है, शायद मौजूदा प्रकार से मेल खाने के लिए स्ट्रिंग को बुलाया जा सकता है। आप इसे की तरह कुछ इस्तेमाल कर सकते हैं:
ageControl.Bind(p,stringof(p.Age).Name);
stringof कुछ वर्ग पथ, या स्ट्रिंग का पूरा पथ, भाग प्राप्त करने के लिए गुण है कि वापसी कर सकता है, तो आप इसे अपने आप को पार्स कर सकते हैं।
क्या ऐसा कुछ ऐसा पहले से ही सक्षम है?
यह, यह नहीं है सी # गतिशील रूप से बांधता है कि ज्यादा उदाहरण के लिए, मौजूदा परियोजनाओं में से एक में हम इस तरह बाइंडिंग सेट WinForms हैं। –
सच है। इस तरह की भाषा सुविधा काम में आ सकती है भले ही आप WinForms का उपयोग नहीं कर रहे हों। –