5
मैं एक कक्षा बनाने की कोशिश कर रहा हूं जहां उपयोगकर्ता सदस्य चर को संशोधित कर सकता है ताकि सदस्य के कार्यों के डिफ़ॉल्ट तर्कों को बदल सके।गतिशील डिफ़ॉल्ट तर्क रखने का कोई तरीका है?
class Class
{
public int Member;
public void Method(int Argument = Member)
{
// This compiles fine, until I try to actually use
// the method elsewhere in code!
// "Error: need 'this' to access member Member"
}
}
मेरा कामकाज अब तक जादू संख्याओं का उपयोग करने के लिए किया गया है, जो स्पष्ट रूप से आदर्श नहीं है।
public void Method(int Argument = 123)
{
int RealArgument;
if (Argument == 123) RealArgument = Member;
else RealArgument = Argument;
}
क्या कोई बेहतर तरीका है, या क्या मैं इस "हैक" समाधान से फंस गया हूं?
यह कई तर्कों के लिए अव्यवहारिक हो सकता है, लेकिन मिश्रक स्वचालित रूप से कोड उत्पन्न करने में मदद कर सकते हैं। – Maxpm
वैरैडिक टेम्पलेट्स और सावधानीपूर्वक नामकरण का उपयोग करने से आप केवल उस बेस फ़ंक्शन और एकल रैपर टेम्पलेट के साथ उस प्रभाव को प्राप्त कर सकते हैं। – BCS