2009-10-23 31 views
5
  var cv = (new CustomValidator() 
      { 
       ErrorMessage="Formato de telefone inválido", 
       ControlToValidate = "txtTelefoneIni", //<-- see the extra comma 
      }); 
+0

यह कानूनी है, सीवी एक नया कस्टम वैलिडेटर बन जाता है। सीवी के खेतों को कन्स्ट्रक्टर के माध्यम से पैरा पास करने के बजाय स्पष्ट रूप से प्रारंभ किया जाता है। – Maciek

उत्तर

12

क्योंकि यह कानूनी वाक्य रचना है।

वास्तव में, यह है।

जब आप ऑब्जेक्ट प्रारंभकर्ता सिंटैक्स का उपयोग एक वस्तु का निर्माण कर रहे हैं, तो आप पिछले आइटम के बाद एक अनुगामी अल्पविराम छोड़ने की अनुमति कर रहे हैं, भले ही आप प्रारंभकर्ता ब्लॉक वहाँ और फिर अंत।

इसके पीछे कारण शायद यह वापस आना और इसे संपादित करना आसान बनाता है, क्योंकि पहले-आखिरी आइटम के बाद कॉमा जोड़ने के लिए भूलना ऑब्जेक्ट-प्रारंभकर्ताओं के साथ # 1 संकलन-समय-समस्या है।

+1

मैंने सुना है कि कोड जनरेटर लिखने वाले लोगों के लाभ के लिए यह कानूनी रूप से छोड़ा गया था। कौन जानता है? मुझे थोड़ी गड़बड़ लगती है। – Will

+1

यह एक संस्करण नियंत्रण दृष्टिकोण से भी अच्छा है - आप किसी भी लाइन को संशोधित किए बिना एक और प्रविष्टि जोड़ सकते हैं, इसलिए diff क्लीनर है। – Cascabel

+0

मैं ईमानदार होने के लिए इस पर दो दिमाग हूं। व्यक्तिगत रूप से मैं उन अल्पविरामों को जोड़ता नहीं हूं, जब मुझे उनकी ज़रूरत होती है, तो मैं उन्हें जोड़ता हूं, लेकिन मुझे कोड जनरेटर के बारे में भी बिंदु दिखाई देता है, जिसका मैं भी उपयोग करता हूं, इसलिए यह किसी भी तरह का सही समाधान नहीं है। वैसे भी, यह यहाँ रहने के लिए है। –

2

यह जानबूझकर है। Enum सदस्यों पर भी काम करता है।

2

यह क्यों संकलन नहीं करना चाहिए (ताकि इसे और अधिक सामान को जोड़ने के लिए आसान है)?

वाक्य रचना के इस प्रकार के रूप में अच्छी तरह अजगर में कानूनी है।

+0

मैंने सोचा क्योंकि एसक्यूएल एएनएसआई और जेस्क्रिप्ट हमें ऐसी चीज करने की इजाजत नहीं देता है। – Cleiton

+0

आईई जावास्क्रिप्ट में पिछली कॉमा को अनुमति नहीं दे रहा है हमारे लिए कई छोटी कीड़े का स्रोत रहा है।हालांकि यह इतना नहीं है कि आईई इसे अनुमति नहीं देता है, यह सिर्फ सरणी के अंत में एक 'अपरिभाषित' तत्व जोड़ता है। – JulianR

+0

एसक्यूएल और जेस्क्रिप्ट अन्य भाषाएं हैं, और वे सी # 3.0 या पायथन नहीं हैं। – yfeldblum

2

यह कम्पाइल क्योंकि यह मान्य सी # वाक्य रचना है। तुम भी सरणियों

स्ट्रिंग [] हुंह = साथ एक ही बात कर सकते हैं { "एक", "बी", "सी",};

1

क्योंकि इसकी अनुमति है। आम तौर पर, इस तरह के रूपों में पीछे आने वाली कॉमा (और वास्तव में उस "विशेषाधिकार" का उपयोग करने की अनुमति) उपयोगी है ताकि प्रोग्रामर पिछले आइटम के अंत में अल्पविराम जोड़ने के लिए भूलने के जोखिम के बिना सूची में और आइटम जोड़ सकें। वस्तु initializers:

1

इसका सी #

में एक वैध वाक्य रचना

var c = new List<int>() { 1, 2, 3 ,}; 
1

Fwiw, यह पहले से ही वैध सी में

मेरा पसंदीदा (जब enums को परिभाषित करने में विशेष रूप से) इस तरह के एक वाक्य विन्यास का उपयोग करने के लिए कारण था कि जब आप सूची में कोई आइटम जोड़ने, स्रोत नियंत्रण एक लाइन में परिवर्तन देखता है केवल (नया एक)। यह previusly एक संशोधित के रूप में टैग नहीं करता है (जोड़ा अल्पविराम के कारण)। अधिक पढ़ने योग्य diff।

मेरा 2-सेंट।

संबंधित मुद्दे