MSDN के बारे में Optional Parameters विजुअल बेसिक
के लिए कहते हैं प्रत्येक वैकल्पिक पैरामीटर के लिए, आप एक निर्दिष्ट करना होगा स्थिर के रूप में अभिव्यक्ति उस पैरामीटर का डिफ़ॉल्ट मान। यदि अभिव्यक्ति पर कुछ भी मूल्यांकन नहीं करती है, तो मान डेटा प्रकार का डिफ़ॉल्ट मान पैरामीटर के डिफ़ॉल्ट मान के रूप में उपयोग किया जाता है।
तो आपको लगता है कि सिंटैक्स का उपयोग नहीं कर सकते हैं, इसके बजाय आप इस
Private Sub Test(a As Integer, Optional c As Color = Nothing)
If c = Nothing Then
c = Color.Black ' your default color'
End If
......
End Sub
एक ही कोड सी # में लिखा की तरह कुछ लिख सकता है निम्नलिखित
private void Test(int a, Color c = default(Color))
{
if (c.IsEmpty)
c = Color.Black;
}
सी # परीक्षण नहीं कर सकते में है शून्य मूल्य के विरुद्ध एक मान प्रकार (जैसे रंग, बिंदु, आकार आदि ...)। ये प्रकार कभी भी शून्य नहीं होते हैं, लेकिन उनके पास प्रकार के लिए डिफ़ॉल्ट मान होता है- (पूर्णांक के लिए 0 की तरह), इसलिए, यदि आपको किसी मान प्रकार के लिए वैकल्पिक पैरामीटर पास करने की आवश्यकता है तो आप इसे new
कीवर्ड के साथ बना सकते हैं जो आप चाहते हैं डिफ़ॉल्ट रूप से उपयोग करने या default
keyword का उपयोग करने के लिए और फ्रेमवर्क को यह तय करने दें कि किस प्रकार के मान डिफ़ॉल्ट के लिए डिफ़ॉल्ट हैं। यदि आप ढांचे को चुनते हैं तो IsEmpty संपत्ति सत्य होगी।
यह अजीब सी # में संकलक मुझे घोषित "रंग c = अशक्त" जब पैरामीटर की घोषणा नहीं दूँगी कि है। इसने शिकायत की कि मूल्य प्रकार के लिए शून्य असाइन करने में सक्षम नहीं है। मुझे "रंग सी = नया रंग()" और फिर "c.IsEmpty" के लिए मेरे कोड परीक्षण में कहना था। –
@BillGregg ने सी # संस्करण जोड़ा – Steve