मेरे पास एक कक्षा है जिसमें दर्जन या उससे अधिक गुण हैं जो विभिन्न वित्तीय क्षेत्रों का प्रतिनिधित्व करते हैं। मेरे पास एक और वर्ग है जिसे अलग-अलग क्षेत्रों में से प्रत्येक पर कुछ गणना करने की आवश्यकता है। उन गणना विधियों के अंदर कोड उस क्षेत्र को छोड़कर समान है जो यह गणना करता है।मैं किसी विधि के पैरामीटर के रूप में कक्षा की संपत्ति कैसे पास कर सकता हूं?
क्या कोई तरीका है कि मैं एक पैरामीटर के रूप में एक संपत्ति नाम पारित कर सकता हूं और केवल एक तरीका है जो प्रत्येक संपत्ति के लिए 12 विधियों के बजाय सभी प्रदर्शन कार्य करता है?
इसके अलावा, मुझे यकीन है कि इसे प्रतिबिंब के माध्यम से पूरा किया जा सकता है, लेकिन मैंने दूसरे कोड में देखा है जहां लैम्बडा का उपयोग इसी तरह के फैशन में किया जाता है और यह सोच रहा था कि यह एक उम्मीदवार है जहां इसका उपयोग किया जा सकता है।
के रूप में अनुरोध किया है, यहाँ एक उदाहरण है:
public class FinancialInfo
{
public virtual DateTime AuditDate { get; set; }
public virtual decimal ReleasedFederalAmount { get; set; }
public virtual decimal ReleasedNonFederalAmount { get; set; }
public virtual decimal ReleasedStateAmount { get; set; }
public virtual decimal ReleasedLocalAmount { get; set; }
public virtual decimal ReleasedPrivateAmount { get; set; }
// more fields like this
}
public class FinancialLedger()
{
public virtual DateTime? BeginDate { get; set; }
public virtual DateTime? EndDate { get; set; }
public virtual IList<FinancialInfo> Financials { get; set; } //not actual implementation, but you get the idea
public decimal GetTotalReleasedFederalAmountByDate()
{
if (BeginDate == null && EndDate == null)
return 0;
decimal total = 0;
foreach (var fi in Financials)
{
if (someCondition)
if (someSubCondition)
total += fi.ReleasedFederalAmount;
else if (someOtherCondition)
if (someOtherSubCondition)
total += fi.ReleasedFederalAmount;
else if (anotherCondigion)
total += fi.ReleasedFederalAmount;
}
return total;
}
public decimal GetTotalReleasedNonFederalAmountByDate()
{
// same logic as above method,
// but it accesses fi.ReleasedNonFederalAmount;
}
// More methods the same as the previous, just accessing different
// members of FinancialInfo
}
मेरा लक्ष्य सिर्फ) एक विधि GetTotalAmountByDate (बुलाया बनाने के लिए और एक शुरू की तारीख में पारित करने के लिए है, और समाप्ति तिथि और संपत्ति के नाम (ReleasedFederalAmount या जारी किया गया LocalAmount, आदि) इसे उपयोग करने की जरूरत है।
मुझे उम्मीद है कि यह सटीक रूप से दर्शाया गया है कि मैं क्या करने की कोशिश कर रहा हूं।
यह आप एक साझा कर सकते हैं, तो जवाब देने के लिए आसान हो जाएगा इस तरह के एक समारोह का उदाहरण, और वर्ग की संपत्तियों की तरह एक झलक दिखाई दे सकती है। –
मुझे उत्सुकता है कि क्यों आपकी गणना विधि वित्तीय फ़ील्ड क्लास का उदाहरण नहीं ले सकती है, और एक मान (यानी उस संपत्ति का मूल्य जिसे आप गणना करना चाहते हैं) पैरामीटर के रूप में क्यों नहीं ले सकते हैं। क्या आप अपने प्रश्न को प्रकाशित करने के लिए कुछ स्टब कोड पोस्ट कर सकते हैं? –
आपके फ़ंक्शन डिफिनेशन में उसी प्रकार का उपयोग करें, जिसे आपने कक्षा की संपत्ति में उपयोग किया था। –