2009-07-30 20 views
16

अन्य भाषाओं मैं इस चूक पैरामीटर, सही करने के लिए हार्डबोइल्ड अगर मैं विधि कॉल में एक पैरामीटर प्राप्त नहीं होता है की तरहC# डिफ़ॉल्ट पैरामीटर

cookEgg(boolean hardBoiled = true) 

विधि हस्ताक्षर सेट कर सकते हैं। मैं इसे सी # में कैसे प्राप्त करूं?

बहुत धन्यवाद

उत्तर

30

वर्तमान में, आप विधि ओवरलोड है:

void cookEgg(bool hardBoiled) { ... } 
void cookEgg() { cookEgg(true); } 

सी # 4.0 वैकल्पिक तर्क जोड़ देगा - आप यह वास्तव में अपने मूल नमूना के रूप में कोड लिखने में सक्षम हो जाएगा, और जैसा कि आप उम्मीद करेंगे काम करेंगे।

+1

मैं इस सुविधा tbh के लिए आगे देख रहा हूँ। इस समय इस सुविधा को रखने के लिए एक अधिभारित विधि बनाने के लिए परेशान करना। मैं स्थिर विस्तार विधियों की भी उम्मीद कर रहा हूं (एक स्थिर वर्ग का विस्तार, जैसे ... सिस्टम.स्ट्रिंग या कुछ)। – Zack

+0

मुझे कुछ याद आना चाहिए, क्योंकि आप सी # 3.0 में 'System.String' के लिए एक्सटेंशन विधियों को आसानी से परिभाषित कर सकते हैं। –

2

यह वही नहीं है जो आप बिल्कुल देखते हैं लेकिन मुझे लगता है कि पैरा तर्क एक और जवाब है।

void test(params int []arg) { } 
संबंधित मुद्दे